jar抛出NoClassDefFoundError

时间:2017-11-27 18:35:50

标签: java jar

我有一个结构很喜欢的项目:

root/
-- lib/
---- commons-cli-1.2.jar
-- src/
---- my/package/name/*.java
-- bin/
---- my/package/name/*.class
-- .classpath
-- .project
-- manifest.mf

*.class中的bin/文件是由Eclipse构建的。我的.classpath包含lib/,编译得很好;它也可以作为“Java应用程序”运行,并且可以使用我当前的存根。

当我尝试创建JAR并包含lib/依赖项时,会出现问题。从我发出的命令行:

jar cvfm prog.jar manifest.mf -C bin/ .

程序构建,然后当我尝试运行java -jar prog.jar时,我得到:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/Option...(还有更多,但我无法从其他机器复制)

我的manifest.mf看起来像是:

Manifest-Version: 1.0
Main-Class: my.package.Main
Class-Path: ./lib/commons-cli-1.2.jar

我觉得Class-Path没有被包含在内,而JAR找不到commons-cli-1.2.jar中包含的类。我把它与JAR创建隔离开来,因为我可以毫无问题地运行已编译的类。

在创建JAR并包含lib/*.jar

时,我做错了什么

0 个答案:

没有答案