Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Logger在生成的jar文件中_Java_Maven_Intellij Idea_Jar - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/log4j/Logger在生成的jar文件中

“线程中的异常”;“主要”;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> <

我用IntellijIDEA中的
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,并得到了相同的错误。