我在Windows 2000上创建了我的JAR,它包含java版本1.5,其中包含以下目录/文件:
lib 包含我想成为JAR一部分的所有JARS。 com 包含我的类文件,下面是manfiest.txt文件
Main-Class: com.as.qst.result.ResultTriggerSchedular
Class-Path: lib/axis.jar lib/c3p0-0.9.1.1.jar lib/commons-discovery-0.2.jar lib/commons-logging-1.0.4.jar lib/jaxrpc.jar lib/log4j-1.2.16.jar lib/medplus-hub-8.2-wsclients.jar lib/medplus-hub-13.1-jaxws-clients.jar lib/quartz-2.2.1.jar lib/quartz-jobs-2.2.1.jar lib/saaj.jar lib/slf4j-api-1.6.6.jar lib/slf4j-log4j12-1.6.6.jar lib/ wsdl4j-1.5.1.jar lib/xercesImpl.jar com\as\qst\result
我使用以下命令生成我的JAR
jar cvfm test.jar manifest.txt com lib
它已成功创建了一个JAR文件,但是当我尝试使用
运行它时java -jar test.jar
它不会执行并抛出异常。我对版本为1.7的Windows 7使用了相同的过程,即使没有manifest.txt com\as\qst\result
中的类文件路径,它也能正常工作。除了在清单中定义之外,更多的是与类路径有关吗?为什么它在Windows 7中运行?
答案 0 :(得分:1)
您的类路径条目中不需要类文件路径。因此,不要将com\as\qst\result
添加到class-path
。
此外,您不得将其他jar文件打包在runnable jar中。
必须在jar文件所在的文件夹中提供其他必需的jar文件(可能在单独的文件夹中)并添加当前目录"。" (不含引号)到class-path
。
希望这有帮助。
修改强>
刚刚找到这个Stackoverflow Link。这可能会为您提供更多见解。请仔细阅读。