gpt4 book ai didi

java - 来自/usr/share/java 的 JAR 依赖解析

转载 作者:太空狗 更新时间:2023-10-29 11:06:03 25 4
gpt4 key购买 nike

有人可以解释一下 JAR 文件和 Java 类加载器如何使用 /usr/share/java 吗?这是 JVM 将在其中执行自动 JAR 加载和类查找的特殊目录,而不是其他目录吗?

例如,如果我有依赖于 y.jarx.jar。如果两个 jar 都在 /usr/share/java 中,则在加载 x.jar 时会找到依赖项 y.jar。但是当从任何其他目录加载 x.jar 时,我必须明确地将 y.jar 放在类路径中,即使它仍然与 位于同一目录中x.jar。这是为什么?

有什么方法可以使其他目录的行为类似于/usr/share/java

最佳答案

根据您的发行版,/usr/share/java 可能位于系统属性 java.ext.dirs 中指定的目录中。文章Extension Mechanism Architecture更详细地解释。此类扩展的位置取决于平台和版本,如 Installed Extensions 中所述.

附录:您可以使用以下代码行检查平台上的属性:

System.out.println(System.getProperty("java.ext.dirs"));

附录:仔细观察,/usr/share/java 没有出现在任何系统属性中;效果可能是由于相关 JAR list 的 Class-Path 属性造成的。使用这个方便utility , 可以检查它们。

/usr/share/java/ant-bootstrap.jar Class-Path: ant.jar xml-apis.jar xercesImpl.jar xalan.jar/usr/share/java/openoffice/java_uno.jar Class-Path: jurt.jar ridl.jar ../../lib/ ../bin//usr/share/java/openoffice/juh.jar Class-Path: ridl.jar jurt.jar ../../lib/ ../bin//usr/share/java/openoffice/jurt.jar Class-Path: ridl.jar unoloader.jar ../../lib/ ../bin/

关于java - 来自/usr/share/java 的 JAR 依赖解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4975379/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com