Java Manifest文件的类路径以及它如何确定相对dirs

时间:2010-08-12 01:53:32

标签: java ant classpath

MANIFEST.MF文件中的类路径如何确定相对位置?

1) 假设我在lib/somejar.jar内有一个带有jar的JAR,并且清单文件位于META-INF/MANIFEST.MF内。我如何设置类路径....?会是Class-path: lib/somejar.jar还是../lib/somejar.jar

2) 让我们说somejar.jar里面还有其他主罐依赖的罐子。当然somejar.jar也有自己的MANIFEST.MF文件,并且具有正确设置的类路径字段。现在让我们说原始的主jar文件在运行时需要访问其中一个JAR文件,只要somejar.jar在main.jar的类路径上,它能够这样做吗?或者,由于主jar运行'somejar.jar'不再是根目录,相关目录是否搞乱了?

次要更新:这将全部在Web环境中,在应用程序服务器上运行。

1 个答案:

答案 0 :(得分:1)

当做“普通香草”时,你不能在JAR里面有一个JAR。您需要将其放在相对于主JAR的已知路径中,在主JAR中提取JAR的内容。

但是从Eclipse 3.5开始,你可以使用内置技巧。选择导出>时,请检查第二个库处理选项。可运行的JAR文件

alt text

当选择将所需的包打包到生成的JAR 中时,Eclipse将添加一个特殊的类加载器,它将在执行主类之前为您透明地加载这些JAR。它是在JarRsrcLoader的帮助下完成的。