![](/img/trans.png)
[英]JavaFx Exception in thread "JavaFX Application Thread" Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
[英]Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger after creating an executable JAR but this is a JAVA Project
我有一个 JAVA (awt) 项目来构建桌面基础实用程序。 当我尝试从仅安装了 JRE 的其他机器上运行它时,这是一个异常
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
at DataProcessor.DataProcessor.App.<clinit>(App.java:73)
at java.base/java.lang.Class.forName0(Native Method)
at java.base/java.lang.Class.forName(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
at java.base/java.net.URLClassLoader.findClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
这里我没有使用 Maven 项目,而是直接从 Eclipse 创建一个可执行 JAR。 尽管我在清单中看到了 log4J (log4j-1.2.17.jar) 的 JAR。 但是当我尝试从其他机器运行它时,这是一个例外。 (其他机器只有 JRE 而不是 JDK)按照我用来运行 JAR 的命令
C:\Users\<username>\Desktop\Utility\latest>"C:\Program Files\Java\jre1.8.0_161\bin\java.exe" -jar Utility.jar
例外是说您没有在类路径中找到 log4j 依赖项:您是否在与放置 jar 的文件夹相同的文件夹中提供 log4j.jar?
在运行应用程序时引用其他 jars 并不容易,如java -jar yourApp.jar
...
但是,我建议您使用 maven(或手动执行)导出一个 fatjar,并将所需的依赖项打包到其中(查看maven-assembler插件或Eclipse 可运行的 jar 导出选项)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.