Путь к библиотеке Java по умолчанию?

Я понимаю, что вы можете установить путь к библиотеке Java с опцией (-Djava.library.path=/path/to/libs) перед выполнением программы, но есть ли место в системе, где выглядит Java, если вы не установите его вручную?


person 2mac    schedule 18.11.2013    source источник


Ответы (3)


Его значение по умолчанию зависит от операционной системы:

  • В Windows это соответствует PATH
  • В Linux это соответствует LD_LIBRARY_PATH
  • В OS X он сопоставляется с DYLD_LIBRARY_PATH
person Matt Ball    schedule 18.11.2013
comment
Откуда эта информация? - person user218867; 23.02.2015
comment
Хороший вопрос, без понятия. - person Matt Ball; 23.02.2015

Однако Мэтт Болл не совсем прав.

В моем 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.

person Yichao Zhou    schedule 26.03.2014
comment
Sun/Oracle изменили поведение между 1.6 и 1.7: - person gerardw; 28.01.2015

Для 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
person DKroot    schedule 27.02.2018
comment
Очевидно, JAVA_LIBRARY_PATH все еще работает с El Captain и jdk 8 или, по крайней мере, с последней сборкой 1.8.0_162-b12. - person MxR; 08.03.2018