“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Logger在生成的jar文件中
我用IntellijIDEA中的“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Logger在生成的jar文件中,java,maven,intellij-idea,jar,Java,Maven,Intellij Idea,Jar,我用IntellijIDEA中的Maven生成了一个jar文件。尝试执行时,我收到以下错误消息: 线程“main”java.lang.NoClassDefFoundError中出现异常: org/apache/log4j/Logger 我只使用了一个log4jversion、1.2.17和java版本1.8.0_171。我也在pom.xml中设置了跳过测试:true 直接从IDE执行是成功的。我使用Maven Surefire插件: <plugin> <
Maven
生成了一个jar
文件。尝试执行时,我收到以下错误消息:
线程“main”java.lang.NoClassDefFoundError中出现异常:
org/apache/log4j/Logger
我只使用了一个log4j
version、1.2.17和java版本1.8.0_171。我也在pom.xml中设置了跳过测试:true
直接从IDE执行是成功的。我使用Maven Surefire插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
org.apache.maven.plugins
maven surefire插件
真的
当您从IDEA运行它时,IDEA包含依赖项,您可以在IDEA的运行工具窗口中检查该命令。
但是,当您生成一个jar并运行它时,其中没有依赖项。要使其正常工作,您必须告诉Maven包含它们,其中一种方法是将build
部分添加到pom.xml:
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>package.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
maven汇编插件
package.main类
带有依赖项的jar
在执行jar时,是否已将具有依赖关系的jar添加到类路径中?是否尝试从命令行执行Java程序?你能添加你调用的命令吗?@Daniele:我在尝试使用java-jar
执行时遇到了以下错误:没有主清单属性你可以使用下面@streetturtle的建议来解决“没有主清单属性”的问题。(清单将被添加到由mvn-package
生成的jar中)。我添加了它,但它生成了一个30kb的jar,并得到了相同的错误。