繁体   English   中英

java.library.path 默认设置为什么?

[英]What is java.library.path set to by default?

我只是想知道 Java 究竟是如何决定其java.library.path属性的默认值的?

我正在运行 *buntu 14.04 64 位,它默认为(前两个不存在):

/usr/java/packages/lib/amd64
/usr/lib64
/lib64
/lib
/usr/lib

搜索我的环境变量,我发现里面没有这些。 设置LD_LIBRARY_PATH确实将其内容添加到此列表中。

鉴于此信息,我假设此列表只是显式设置(硬编码)到 Java 中,但我找不到有关它的任何文档。 我的假设正确吗? 不同操作系统的默认值是什么? 这些值会随分布而变化吗?

我问有两个原因。 1)我只是好奇。 2) 我想知道我可以把一个库放在哪里,以便 Java 总能找到它。

在我的 Debian 系统上,如果我使用命令检查 java.library.path 的值

java -XshowSettings:properties

安装的系统包中的 java 返回正确的值:

/usr/java/packages/lib
/usr/lib/x86_64-linux-gnu/jni
/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu
/usr/lib/jni
/lib
/usr/lib

我在 openjdk 站点上下载的 open-jdk 中的 java 返回:

/usr/java/packages/lib
/usr/lib64
/lib64
/lib
/usr/lib

我在对应jdk/jvm的二进制libjvm.so中找到每个返回值

如果要查找当前在您的机器中设置的路径,请运行以下命令。

System.out.println(System.getProperty("java.library.path"));

您可以在代码中显式设置路径如下

System.setProperty(“java.library.path”, “/path/to/library”);

通过命令行

java -Djava.library.path=<path>

我也不会称它为环境变量。 它是 jvm 使用的系统属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM