“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Logger创建了一个可执行JAR,但这是一个java项目
我有一个JAVA(awt)项目来构建一个基于桌面的实用程序。当我试图在其他机器上运行这个程序时,只安装了JRE,这是一个异常“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Logger创建了一个可执行JAR,但这是一个java项目,java,Java,我有一个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.forN
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)
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/log4j/Logger
在DataProcessor.DataProcessor.App.(App.java:73)
位于java.base/java.lang.Class.forName0(本机方法)
位于java.base/java.lang.Class.forName(未知源)
位于org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
原因:java.lang.ClassNotFoundException:org.apache.log4j.Logger
位于java.base/java.net.URLClassLoader.findClass(未知源)
位于java.base/java.lang.ClassLoader.loadClass(未知源)
位于java.base/java.lang.ClassLoader.loadClass(未知源)
这里我不是使用maven项目,而是直接从eclipse创建一个可执行JAR。尽管我在清单中看到了log4J的JAR(log4J-1.2.17.JAR)。但当我试图从其他机器上运行它时,这是一个例外。(其他机器只有JRE而没有JDK)下面是我用来运行JAR的命令
C:\Users\<username>\Desktop\Utility\latest>"C:\Program Files\Java\jre1.8.0_161\bin\java.exe" -jar Utility.jar
C:\Users\\Desktop\Utility\latest>“C:\Program Files\Java\jre1.8.0\u 161\bin\Java.exe”-jar Utility.jar
例外情况是,在类路径上找不到log4j依赖项:您提供的log4j.jar是否与放置jar的文件夹位于同一文件夹中
在运行应用程序时引用其他jar并不是那么容易的,比如java-jaryourapp.jar
- 在运行另一个jar时,您可以查看关于引用jar的信息李>
- 如果您想调查清单使用情况,请查看李>
但是,我建议您使用maven(或手动)导出包含所需依赖项的fatjar(请查看插件或插件)。这是否回答了您的问题?