java : 如何知道库在运行时从哪里加载
java : how to know from where the libraries are loaded at runtime
我遇到一个问题,jar 文件在一台机器上运行,但不能在另一台机器上运行 -
asked on Whosebug.
似乎在第二台计算机上找不到某些依赖项。
我的问题是,有没有办法知道从哪里加载库(如 - 简单地 System.out.println("from which directory the dependent jar is linked")
)?
这将输出很多信息,但它包括所有 jar 文件的位置:
您可以使用 -verbose:class
选项启动 Java 来调试类加载器问题。
您也许可以使用 jcmd
(JDK 的一部分)并查询 JVM 在启动时使用的 class 路径。
jcmd ${pid_of_the_JVM} VM.system_properties | grep path
在输出中查看属性
java.class.path
sun.boot.class.path
我遇到一个问题,jar 文件在一台机器上运行,但不能在另一台机器上运行 - asked on Whosebug.
似乎在第二台计算机上找不到某些依赖项。
我的问题是,有没有办法知道从哪里加载库(如 - 简单地 System.out.println("from which directory the dependent jar is linked")
)?
这将输出很多信息,但它包括所有 jar 文件的位置:
您可以使用 -verbose:class
选项启动 Java 来调试类加载器问题。
您也许可以使用 jcmd
(JDK 的一部分)并查询 JVM 在启动时使用的 class 路径。
jcmd ${pid_of_the_JVM} VM.system_properties | grep path
在输出中查看属性
java.class.path
sun.boot.class.path