如何在Java Manifest.mf的Class-Path中用相对路径引用父目录?
在Java Manifest.mf中用相对路径引用父目录下的JAR
嗨,这个问题我碰到过好多次了,其实逻辑和你平时在文件系统里导航目录一模一样——Manifest.mf里的Class-Path属性完全支持用../来表示父目录。
针对你的具体场景:
- 你的
a.jar放在somewhere/aaa/目录下 - 要引用的
b.jar在同级的somewhere/bbb/目录里
你只需要在a.jar的Manifest.mf中这么配置:
Manifest-Version: 1.0 Class-Path: ../bbb/b.jar Main-Class: com.yourpackage.YourMainClass
几个关键细节要留意:
- 路径分隔符必须用斜杠
/,不能用Windows的反斜杠\,毕竟Manifest是跨平台的格式 - 如果要添加多个依赖JAR,直接用空格分隔即可,比如
../bbb/b.jar ../ccc/c.jar - 这里的相对路径是相对于
a.jar所在的实际目录,不是你的项目源码目录或者类加载路径,所以如果后续移动了a.jar的位置,记得同步调整这个路径,不然会找不到依赖
内容的提问来源于stack exchange,提问作者user9283362
相关产品推荐
相关产品推荐

