Java list 文件类路径及其如何确定相对死亡

标签 java ant classpath

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

1) 假设我有一个 JAR,其中包含 lib/somejar.jar 内的 jar,并且 list 文件位于 META-INF/MANIFEST.MF 内。我将如何设置类路径......?是类路径:lib/somejar.jar还是../lib/somejar.jar

2) 假设 somejar.jar 内部还有主 jar 所依赖的其他 jar。当然,somejar.jar 也有自己的 MANIFEST.MF 文件,其中包含正确设置的 Class-path 字段。现在假设原始主 jar 文件在运行时需要访问这些 JAR 文件之一,只要 somejar.jar 位于 main.jar 的类路径上就可以这样做吗?或者由于主 jar 正在运行“somejar.jar”不再是根目录,所以相对目录是否困惑?

小更新:这一切都将在应用程序服务器上的 Web 环境中运行。

最佳答案

当使用“plain vanilla”时,你不能在 JAR 中包含 JAR。您需要将其放在相对于主 JAR 的已知路径中,或者将 JAR 的内容提取到主 JAR 中。

但是从 Eclipse 3.5 开始,您可以使用内置技巧来做到这一点。当您选择导出 > 可运行的 JAR 文件时,选中第二个库处理选项。

alt text

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

关于Java list 文件类路径及其如何确定相对死亡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464205/

相关文章:

ant - 在ant中获取maven运行时依赖

java - 无法为 Weceem Grails CMS 设置 JAVA_OPTS 变量 -Dweceem.config.location

java - 如何让 Ant 在 javac 中使用 JAXB 2.2.x 而不是 Java 6 SE JAXB 类?

android - 如何在 eclipse 中创建新的 android 项目并在本地 git 存储库中共享?

java - Intellij 结构搜索和替换所有形式的 if 语句

java - 在 JVM 级别重新定义 Locale 的日期时间格式

java - Spring Boot Jsp 不适用于版本 2.0.2.RELEASE

java - Maven antrun 插件。将目录中的所有文件作为参数传递

java - 将 XML 转换为 Java 对象时获取不正确的值

ios - 如何比较 ANT 脚本中的字符串