我想在固定位置引用一个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上运行。
Class-Path
属性被解释为URL列表,因此,要使用绝对路径(在此以URL表示),它应以架构开头并使用正斜杠。
请尝试以下操作:
Class-Path: file:///C:/Users/Admin/workspace/TestGradle/commons-math3-3.6.1.jar
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句