默认的Java库路径?

2ma*_*mac 29 java java.library.path

我知道您可以-Djava.library.path=/path/to/libs在执行程序之前使用option()设置Java库路径,但是如果您不手动设置它,那么在Java系统中是否有一个位置?

Mat*_*all 37

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

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

  • 好问题,不知道. (3认同)
  • 这些信息从何而来? (2认同)
  • 默认值由[System.java`中的本机方法]设置(http://www.docjar.com/html/api/java/lang/System.java.html#521),我没有是时候进一步深入了解它. (2认同)

Yic*_*hou 11

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

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

/usr/lib64/icedtea6/jre/lib/amd64/server:/usr/lib64/icedtea6/jre/lib/amd6ib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Run Code Online (Sandbox Code Playgroud)

虽然我LD_LIBRARY_PATH/usr/local/lib64.

  • Sun/Oracle改变了1.6和1.7之间的行为:https://blogs.oracle.com/darcy/entry/purging_ld_library_path (4认同)

DKr*_*oot 5

对于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 / Open JDK 8: java.library.path=$LD_LIBRARY_PATH:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib