Ошибка JNI: исключение в потоке «main» java .lang.NoClassDefFoundError - PullRequest
2 голосов
/ 14 июля 2020

Журнал ошибок:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/text/StrSubstitutor
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.privateGetMethodRecursive(Class.java:3048)
    at java.lang.Class.getMethod0(Class.java:3018)
    at java.lang.Class.getMethod(Class.java:1784)
    at sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.text.StrSubstitutor
    at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
    ... 7 more

Я знаю, что люди задавали этот вопрос раньше, но ни один из них не использует фреймворк Dropwizard.

Вот что я пробовали:

  • Различные версии Dropwizard с использованием pom. xml,
  • Добавление commons-lang и commons-text, похоже, не исправляет это, хотя commons-text вызывает другую ошибку:
  • Перезагрузка компьютера.

Это довольно сложный pom.xml файл, которым мне неудобно делиться ...

Есть идеи, почему это происходит?

1 Ответ

0 голосов
/ 14 июля 2020

Возможно ли, что вы скомпилируете более новую версию (например, Java 8) и запустите ее с более старой версией (Java 7)? Если да, проверьте путь. (1) Другое дело, что библиотеки apache скомпилированы с более новой версией.

(1) Попробуйте сравнить вывод java --version и javac --version

...