我知道在运行程序之前可以使用选项(-Djava.library.path=/path/to/libs
)来设置Java库路径,但如果不手动设置它,Java会在系统上查找是否有预设的地方吗?
我知道在运行程序之前可以使用选项(-Djava.library.path=/path/to/libs
)来设置Java库路径,但如果不手动设置它,Java会在系统上查找是否有预设的地方吗?
默认值取决于操作系统:
PATH
LD_LIBRARY_PATH
DYLD_LIBRARY_PATH
然而,马特·博尔并非完全正确。
在我的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,这取决于操作系统。这是我观察到的行为:
java.library.path=%PATH%;.
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应用程序的环境中删除。java.library.path=$LD_LIBRARY_PATH:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
System.java
中的本地方法设置,目前我没有时间深入挖掘。 - Matt Ball