默认的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_PATHLD_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