我创建了包含依赖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)
我的清单文件:
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
我正在尝试执行 java -cp WMTOFuse.jar com.TestFlowProcessor
答案 0 :(得分:0)
你可以使用'Ant''jar'任务。请参阅https://ant.apache.org/manual/Tasks/jar.html
<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>
上面的创建了一个包含多个jar内容的jar文件。
答案 1 :(得分:0)
问题似乎与log4j-1.2.17.jar有关。我把它改成了 log4j-1.2.15.jar&amp;上述问题已得到解决。感谢大家 帮助我解决这个问题。