2016-09-06 112 views
1

我构建了一个jar文件,其中包含使用其他jar文件作为依赖项的代码,但我无法运行它(我一直在收到NoClassDefFoundError)。如何将依赖关系jar文件包含到jar文件中

我可以在网上找到的所有其他类似问题都用maven作为解决方案,我想避免这样做。当我运行像这样我的代码:

#!/bin/bash 
java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" WikipediaWords [email protected] 

它运行良好,但是当我尝试:

java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" -jar WikipediaWords.jar [email protected] 

它抱怨。

虽然我编译了我的jar文件,但里面还有所有的依赖关系,所以我真的不知道为什么找不到任何东西。理想情况下,我甚至不希望将-cp路径添加到我的java执行中,并且只知道jar文件使用嵌套的jar依赖文件。

如果您有任何关于如何解决这个问题(运行没有类def错误的jar文件)而不使用Maven,请告诉我!

在此先感谢!

P.S.我的建筑规范可能是有用的:

#!/bin/bash 
javac -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" src/WikipediaWords.java 
jar cfm src/WikipediaWords.jar src/Manifest.txt -C src/ . 

回答

1

尝试运行下面的命令:

java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar:WikipediaWords.jar" WikipediaWords [email protected] 

OR

java -cp "WikipediaWords.jar:src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" WikipediaWords [email protected] 
+0

非常感谢,这个作品! –

+0

如果我能以某种方式获取WikipediaWords.jar中jar文件的副本,您是否有任何线索? –

+0

@Ofek:这个答案解决了你的问题吗? –

相关问题