Je comprends que vous pouvez définir le chemin de la bibliothèque Java avec une option (-Djava.library.path=/path/to/libs
) avant d'exécuter le programme, mais y a-t-il un emplacement sur le système où Java recherche si vous ne le définissez pas manuellement?
Réponses:
32 pour la réponse № 1Sa valeur par défaut dépend du système d'exploitation:
- Sous Windows, il mappe à
PATH
- Sous Linux, il mappe à
LD_LIBRARY_PATH
- Sur OS X, il mappe à
DYLD_LIBRARY_PATH
11 pour la réponse № 2
Cependant, Matt Ball n'est pas totalement correct.
Sur ma machine Linux, mon chemin de bibliothèque Java est
/usr/lib64/icedtea6/jre/lib/amd64/server:/usr/lib64/icedtea6/jre/lib/amd6ib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Alors que mon LD_LIBRARY_PATH
est /usr/local/lib64
.
3 pour la réponse № 3
Pour Java 8, cela diffère selon le système d'exploitation. C'est le comportement que j'ai observé:
- 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
etLD_LIBRARY_PATH
les variables sont ignorées. De plus, ces deux variables sont supprimées de l'environnement des applications Java. - Linux CentOS 7 / Open JDK 8:
java.library.path=$LD_LIBRARY_PATH:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib