java - java.library.path 的默认设置是什么?

标签 java

我只是想知道 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/

相关文章:

java - Map里面的LinkedList怎么变化呢?

java - 如何在列表单元格中添加组件?

java - Http 客户端由于某种原因挂起

java - 方法中的变量作用域

java - Android Java HttpUrlConnection 卡住

java - 为什么 Java 编译器作为可执行文件而不是 JVM 字节码分发?

java - 导出可运行 Jar 不适用于 ImageIcon

java - JTable - 如何强制用户只选择一行

java - 为什么我的 jar 无法从任务计划程序打开

java - 如何在 Java 中线程安全地发出线程暂停信号