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

How to include dependency jar files into jar file

我正在使用使用其他 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 依赖文件。

如果您知道如何在不使用 Maven 的情况下解决这个问题(运行 没有 class def 错误的 jar 文件),请告诉我!

提前致谢!

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/ .

尝试运行以下命令:

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

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