默认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 inSystem.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_PATH
和 LD_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库路径?的主要内容,如果未能解决你的问题,请参考以下文章