当前位置: 首页 > 知识库问答 >
问题:

线程“main”java中出现异常。lang.NoClassDefFoundError:org/apache/log4j/Logger在生成的jar文件中

方和宜
2023-03-14

我用IntellijIDEA中的Maven生成了一个jar文件。尝试执行时,我收到以下错误消息:

线程“main”java中出现异常。lang.NoClassDefFoundError:org/apache/log4j/Logger

我只使用一个log4j版本,1.2.17和java版本1.8.0_171。我也在pom.xml中设置了跳过测试:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
            <skipTests>true</skipTests>
        </configuration>
    </plugin>

共有1个答案

荆煌
2023-03-14

当您从IDEA运行它时,IDEA包含依赖项,您可以在IDEA的运行工具窗口中检查命令。但是当您生成一个jar并运行它时,它不包含依赖项。为了让它工作,你必须告诉Maven包含它们,其中一种方法是使用Apache 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>
 类似资料: