代码之家  ›  专栏  ›  技术社区  ›  Zombies

Java清单文件的类路径及其确定相对目录的方式

  •  1
  • Zombies  · 技术社区  · 14 年前

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

    1) lib/somejar.jar META-INF/MANIFEST.MF . 如何设置类路径。。。。?会是吗 Class-path: lib/somejar.jar ../lib/somejar.jar ?

    假设somejar.jar中还有主jar所依赖的其他jar。当然,somejar.jar也有自己的MANIFEST.MF文件,其中包含正确设置的类路径字段。现在让我们假设原始的主jar文件在运行时需要访问其中一个jar文件,只要somejar.jar在main.jar的类路径上,它就可以这样做吗?或者是因为主jar运行的“somejar.jar”不再是根目录而导致相关目录混乱?

    小更新:所有这些都将在web环境中的应用程序服务器上运行。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Community CDub    8 年前

    做“纯香草”的时候,你不能把罐子放在罐子里。你要么把它放在一个相对于主JAR的已知路径中, 在主JAR中提取JAR的内容。

    但是自从Eclipse3.5以来,您可以通过一个内置的技巧来实现这一点。检查第二个 库处理 选择时的选项 导出>可运行JAR文件 .

    alt text

    将所需库打包到生成的JAR中 ,然后Eclipse将添加一个特殊的类加载器,它将在执行主类之前为您透明地加载这些JAR。它是借助于 JarRsrcLoader