Java 另一个Jar错误中的Jar文件NoClassDefFoundError和ClassNotFoundException

Java 另一个Jar错误中的Jar文件NoClassDefFoundError和ClassNotFoundException,java,maven,ant,Java,Maven,Ant,我已经创建了包含依赖jar的jar文件,但当我尝试在其中运行类文件时,它会给出如下错误 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger at com.TestFlowProcessor.<clinit>(WebMethodsFlowProcessor.java:37) Caused by: java.lang.ClassNotFoundExceptio

我已经创建了包含依赖jar的jar文件,但当我尝试在其中运行类文件时,它会给出如下错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
        at com.TestFlowProcessor.<clinit>(WebMethodsFlowProcessor.java:37)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
我正在尝试使用
java-cp WMTOFuse.jar com.TestFlowProcessor

您可以使用“Ant”“jar”任务来完成此任务。提及


上面创建了一个jar文件,其中包含多个jar的内容

问题似乎出在log4j-1.2.17.jar上。我把它改成了 log4j-1.2.15.jar&上述问题已得到解决。谢谢大家 谢谢你帮我解决这个问题


一般来说,类加载器不会加载嵌入JAR中的JAR。您可以查看OneJar项目以寻找可能的解决方案。您可以将依赖的jar保存在文件夹(例如lib)中,然后使用java-cp/lib*:WMTOFuse.jar com.TestFlowProcessor,而不是制作一个“胖”jar文件。变更:至;如果在Windows中。
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Created-By: Apache Maven
Built-By: test
Build-Jdk: 1.8.0_45
Class-Path: log4j-1.2.17.jar slf4j-api-1.7.10.jar commons-logging-1.1.jar dom4j-1.6.1.jar jsoup-1.8.3.jar junit-3.8.1.jar log4j-1.2.17.jar poi-3.8-20120326.jar poi-ooxml-3.8-20120326.jar poi-ooxml-schemas-3.8-20120326.jar SAPIntegrationDirectory.jar stax-api-1.0.1.jar xmlbeans-2.3.0.jar
Main-Class: com.TestFlowProcessor
<jar destfile="build/main/checksites.jar">
    <fileset dir="build/main/classes"/>
    <restrict>
     <name name="**/*.class"/>
     <archives>
       <zips>
         <fileset dir="lib/main" includes="**/*.jar"/>
       </zips>
     </archives>
    </restrict>
    <manifest>
      <attribute name="Main-Class"
            value="com.acme.checksites.Main"/>
    </manifest>
  </jar>