我只是想知道 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中找到了每个返回值
关于java - java.library.path 的默认设置是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29968292/