如何将依赖jar文件包含到jar文件中

时间:2016-09-06 22:33:26

标签: java jar compilation execution

我正在构建一个包含其他jar文件作为依赖项的代码的jar文件,我无法让它运行(我不断得到NoClassDefFoundError)。

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

#!/bin/bash
java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" WikipediaWords $@

它运行正常,但是当我尝试时:

java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" -jar WikipediaWords.jar $@
它抱怨道。

我编译了包含所有依赖项的jar文件,但是我真的不知道为什么它找不到任何东西。理想情况下,我甚至不想将-cp路径添加到我的java执行中,只需知道jar文件使用嵌套的jar依赖文件。

如果你有任何关于如何解决这个问题的线索(运行没有类定义错误的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 个答案:

答案 0 :(得分:1)

尝试运行以下命令:

java -cp "src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar:WikipediaWords.jar" WikipediaWords $@

OR

java -cp "WikipediaWords.jar:src/.:src/jsoup-1.9.2.jar:src/commons-cli-1.3.1.jar" WikipediaWords $@