Попытка использовать Maven для организации моего проекта, и я продолжаю сталкиваться со следующей ошибкой. Я знаю, что эта ошибка означает, что файл присутствует во время компиляции, но по какой-то причине его нельзя найти во время выполнения.
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/parser/ParseException
Итак, я работаю над проектом на Java, который будет принимать пользовательский запрос, искать в Google Images и затем загружать некоторые результаты на мой компьютер. Для этого мне пришлось использовать сторонние библиотеки, такие как JSoup, Json-Simple и Gson.
Сначала я вручную добавил Jsoup в свой путь к классам, и это сработало, но потом я услышал о Maven и начал использовать его вместо этого. Моя проблема в том, что когда я пытаюсь запустить свой код, я получаю сообщение об ошибке выше.
Я просто не уверен, как решить эту проблему. Я видел множество других сообщений о подобных ошибках, и я попытался изменить свой pom.xml соответственно, но
Я просто не могу заставить его работать. Я попытался удалить файл ~ / .m2, запустил mvn clean, установил mvn, пакет mvn, скомпилировал mvn, и все работает нормально. Но когда приходит время бежать, я получаю эту ошибку.
Вот большая часть моего файла pom.xml.
<repositories>
<repository>
<id>central</id>
<name>Maven repository</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<!-- jsoup HTML parser library @ https://jsoup.org/ -->
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
<scope>provided</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.googlecode.json-simple/json-simple -->
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
НАЙДЕННОЕ РЕШЕНИЕ: Поэтому я упустил некоторые части файла pom.xml, чтобы его было легче читать, и поскольку все остальные части были сгенерированы самим Maven, я решил, что с этим ничего не может быть. Но он добавляет тег «pluginManagement», который включает в себя все остальные плагины, и, очевидно, это не позволяет плагину Shade работать.
Между руководством ngueno и этим постом Плагин оттенка Maven не вызывается автоматически для цели "пакет"
Мне удалось выяснить мою проблему, хотя я все еще не совсем уверен, почему это проблема. В любом случае, я решил обновить этот пост на случай, если кто-то с подобной проблемой наткнется на него. Это было на Mac OS между прочим, на случай, если что-то изменится. Спасибо за вашу помощь всем.