我想引用固定位置的 jar 文件以供多个可执行 jar 文件使用,而不是在每个可执行文件中包含该 jar 文件。我有以下设置,效果很好
commons-math3-3.6.1.jar 存在于目录 testgradle 中。 TestGradle.jar 包含 main 方法,存在于目录 testgradle/build/libs 中
从 testgradle/build/libs 我运行:
java -jar TestGradle.jar
一切都运转良好。 TestGradle.jar 中的清单包含:
Manifest-Version: 1.0
Class-Path: ../../commons-math3-3.6.1.jar
Main-Class: com.spgxyz.test.testg
但我想使用绝对路径来处理 commons-math3-3.6.1.jar ,以便 TestGradle.jar 等可执行 jar 可以从它们驻留在的任何目录中使用它。但是,如果我更改 TestGradle.jar 清单以包含完整的小路:
Manifest-Version: 1.0
Class-Path: C:\Users\Admin\workspace\TestGradle\commons-math3-3.6.1.ja
r
Main-Class: com.spgxyz.test.testg
然后命令:
java -jar TestGradle.jar
从 testgradle/build/libs 运行会产生:
Error: Could not find or load main class com.spgxyz.test.testg
Caused by: java.lang.ClassNotFoundException: com.spgxyz.test.testg
我尝试对清单进行各种编辑来尝试解决此问题,例如:
Manifest-Version: 1.0
Class-Path: . C:\Users\Admin\workspace\TestGradle\commons-math3-3.6.1.
jar
Main-Class: com.spgxyz.test.testg
Manifest-Version: 1.0
Class-Path: TestGradle.jar C:\Users\Admin\workspace\TestGradle\commons
-math3-3.6.1.jar
Main-Class: com.spgxyz.test.testg
这些都会产生相同的错误。如果有人能够阐明这里发生的事情,我将非常感激。在 Windows 上运行。