默认Java库路径?

Posted

技术标签:

【中文标题】默认Java库路径?【英文标题】:Default Java library path? 【发布时间】:2013-11-18 01:53:59 【问题描述】:

我知道您可以在执行程序之前使用选项 (-Djava.library.path=/path/to/libs) 设置 Java 库路径,但是如果您不手动设置,系统上是否存在 Java 看起来的地方?

【问题讨论】:

【参考方案1】:

其默认值取决于操作系统:

在 Windows 上,它映射到 PATH 在 Linux 上,它映射到 LD_LIBRARY_PATH 在 OS X 上,它映射到 DYLD_LIBRARY_PATH

【讨论】:

这些信息从何而来? 好问题,不知道。 默认值由a native method in System.java设置,我没有时间在atm进一步挖掘。【参考方案2】:

但是,Matt Ball 并不完全正确。

在我的 Linux 机器上,我的 Java 库路径是

/usr/lib64/icedtea6/jre/lib/amd64/server:/usr/lib64/icedtea6/jre/lib/amd6ib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

而我的LD_LIBRARY_PATH/usr/local/lib64

【讨论】:

Sun / Oracle 在 1.6 和 1.7 之间改变了行为:blogs.oracle.com/darcy/entry/purging_ld_library_path【参考方案3】:

对于 Java 8,这因操作系统而异。这是我观察到的行为:

Windows 10/Oracle JDK 8:java.library.path=%PATH%;. macOS El Capitan/Oracle JDK 8:java.library.path=$JAVA_LIBRARY_PATH:~/Library/Java/Extensions:/Library/Java/Extensions:/Network/Library/Java/Extensions:/System/Library/Java/Extensions:/usr/lib/java:.DYLD_LIBRARY_PATHLD_LIBRARY_PATH 变量被忽略。此外,这两个变量都已从 Java 应用程序的环境中移除。 Linux CentOS 7/打开 JDK 8:java.library.path=$LD_LIBRARY_PATH:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

【讨论】:

显然 JAVA_LIBRARY_PATH 仍然适用于 El Captain 和 jdk 8,或者至少适用于最近的 1.8.0_162-b12 构建

以上是关于默认Java库路径?的主要内容,如果未能解决你的问题,请参考以下文章

linux下编译时的默认库和头文件搜索路径

vs2019更改git存储库默认本地路径

linux 添加动态库路径

java 加载动态链接库怎么使用相对路径

如何添加默认库路径?

java 加载动态链接库怎么使用相对路径