【发布时间】:2015-06-23 06:31:23
【问题描述】:
关于在 MANIFEST.MF 中使用 Class-Path,我与另一位开发人员(以及经验证据)存在意见分歧。
我的 /lib 文件夹中有一个带有一堆 jar 的 EAR。在我的 application.xml 中,我将我的 <library-path> 定义为 /lib,但我相信无论如何这是默认设置/值。
在我的根目录下,我有一个my-ejb.jar 文件。在 EJB 中,我有一个带有 Class-Path 条目的 MANIFEST.MF。
所以现在的问题是:
- 如果在 EJB 清单中找到类路径条目,即使清单中没有明确指定,类加载器是否仍然可以访问 /lib 中的所有 jars/lib?
- 如果在清单中找不到类路径条目,EJB 是否有权访问 /lib 中的任何/所有 jar?
- 如果清单中指定的 jar 位于与 /lib 不同的位置,它是否优先于 /lib 中的内容?
- 类加载器如何解决清单中有不存在的 jar 条目的问题?
- 是所有这些规则都依赖于容器实现,还是 Java 规范的一部分(我无法在任何地方找到)。
部分问题是由于我使用的第三方 EJB 与编写不佳的清单(在根文件夹中查找库、不存在的 jar 等)一起使用的。所以我可以重写清单,但是,我也质疑在签名的 EJB jar 的情况下这将如何工作。我可以从清单中定义的位置移动依赖库吗?
【问题讨论】:
标签: java jar classpath manifest ear