Как я могу решить JNI Ошибка: java.lang.NoClassDefFoundError: при запуске Java-программы с докером openjdk: 8? - PullRequest
0 голосов
/ 08 мая 2018

Как я могу решить JNI-ошибку: java.lang.NoClassDefFoundError: twitter4j / TwitterException при запуске Java-программы с докером openjdk: 8

Мой Dockerfile:

FROM openjdk:8
ADD dist/TwitterData.jar TwitterData.jar  
ENV CLASSPATH .:.twitter4j.jar
ENTRYPOINT ["java","-jar","TwitterData.jar"]

Отображаемая ошибка:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.NoClassDefFoundError: twitter4j/TwitterException
    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: twitter4j.TwitterException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

1 Ответ

0 голосов
/ 08 мая 2018

Чтобы устранить эту ошибку, я залез в оболочку изображения и добавил переменные PATH вручную, после этого все работает нормально.

...