Я понимаю, что вы можете установить путь к библиотеке Java с опцией (-Djava.library.path=/path/to/libs
) перед выполнением программы, но есть ли место в системе, где выглядит Java, если вы не установите его вручную?
Путь к библиотеке Java по умолчанию?
Ответы (3)
Его значение по умолчанию зависит от операционной системы:
- В Windows это соответствует
PATH
- В Linux это соответствует
LD_LIBRARY_PATH
- В OS X он сопоставляется с
DYLD_LIBRARY_PATH
person
Matt Ball
schedule
18.11.2013
Откуда эта информация?
- person user218867; 23.02.2015
Хороший вопрос, без понятия.
- person Matt Ball; 23.02.2015
Значение по умолчанию задается нативным методом в
System.java
< /a> и у меня нет времени копаться в этом дальше.
- 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
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
Очевидно, JAVA_LIBRARY_PATH все еще работает с El Captain и jdk 8 или, по крайней мере, с последней сборкой 1.8.0_162-b12.
- person MxR; 08.03.2018