我运行docker run

时间:2019-07-26 14:37:17

标签: java docker jar dockerfile

我为一个简单的Java应用程序创建了一个docker容器。

正确创建Docker映像。 当我运行docker run时,我遇到了一些与java有关的问题,但是当我使用IntelliJ运行它时,该应用程序运行良好。

docker错误:

  

PS C:\ Windows \ system32> docker运行测试       错误:发生了JNI错误,请检查您的安装并重试       线程“主”中的异常java.lang.NoClassDefFoundError:javax / jms / JMSException               在java.lang.Class.getDeclaredMethods0(本地方法)               在java.lang.Class.privateGetDeclaredMethods(Class.java:2701)               在java.lang.Class.privateGetMethodRecursive(Class.java:3048)               在java.lang.Class.getMethod0(Class.java:3018)               在java.lang.Class.getMethod(Class.java:1784)               在sun.launcher.LauncherHelper.validateMainClass(LauncherHelper.java:544)               在sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:526)       引起原因:java.lang.ClassNotFoundException:javax.jms.JMSException               在java.net.URLClassLoader.findClass(URLClassLoader.java:382)               在java.lang.ClassLoader.loadClass(ClassLoader.java:424)               在sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:349)               在java.lang.ClassLoader.loadClass(ClassLoader.java:357)               ...还有7个

Dockerfile:

FROM openjdk:8-jre
COPY /target/application.jar /tmp/application.jar
WORKDIR /tmp
ENTRYPOINT ["java", "-cp", "application.jar", "Package.ClassWithMain"]

预先感谢您, 蒙德

2 个答案:

答案 0 :(得分:1)

您:复制/target/application.jar /tmp/application.jar 尝试:COPY。 / usr / src / myapp

您:WORKDIR / tmp 试试:WORKDIR / usr / src / myapp

寻找其书面内容,应该有所帮助!

运行javac Main.java CMD [“ java”,“ Main”]

答案 1 :(得分:0)

问题可能是您的jar缺少某些依赖项。 Intellij在构建路径中可能具有必需的依赖关系,这就是您的应用程序从该环境运行的原因。您是在使用Maven还是构建工具来创建jar?