默认的Java库路径?
我知道您可以在执行程序之前使用选项( -Djava.library.path=/path/to/libs
)设置Java库路径,但是如果您没有设置Java,那么Java系统中是否有一个位置手动吗?
其默认值取决于操作系统:
- 在Windows上,它映射到
PATH
- 在Linux上,它映射到
LD_LIBRARY_PATH
- 在OS X上,它映射到
DYLD_LIBRARY_PATH
但是,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
。
对于Java 8,这基于OS而不同。 这是我观察到的行为:
- 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 / Open JDK 8:
java.library.path=$LD_LIBRARY_PATH:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib