【发布时间】:2011-02-24 00:06:34
【问题描述】:
根据我的阅读,当你执行如下命令时:
java -jar foo.jar
然后主类路径被忽略,类路径取自清单文件。
此外,命令行上声明的类路径也被忽略。所以在:
java -classpath /usr/local/jar/foobar.jar -jar foo.jar
/usr/local/jar/foobar.jar 被忽略。
最后,我了解到清单文件在 jar 文件中只能包含相对路径。
那么,如何包含外部 jar 的绝对路径,这些外部 jar 存在于系统上,但不在正在执行的 jar 文件中?
【问题讨论】:
-
"注意:Class-Path 标头指向本地网络上的类或 JAR 文件,不是 JAR 文件中的 JAR 文件或可通过 Internet 协议访问的类。加载将 JAR 文件中的 JAR 文件中的类放入类路径中,您必须编写自定义代码来加载这些类。例如,如果 MyJar.jar 包含另一个名为 MyUtils.jar 的 JAR 文件,则不能在 MyJar 中使用 Class-Path 标头。 jar 的清单将 MyUtils.jar 中的类加载到类路径中。”来源:docs.oracle.com/javase/tutorial/deployment/jar/downman.html
标签: java jar classpath manifest.mf