Pergunta

Entendo que você pode definir o caminho da biblioteca Java com uma opção (-Djava.library.path=/path/to/libs) antes de executar o programa, mas existe um local no sistema onde o Java procura se você não o configurar manualmente?

Foi útil?

Solução

Seu valor padrão depende do sistema operacional:

  • No Windows, ele mapeia para PATH
  • No Linux, ele mapeia para LD_LIBRARY_PATH
  • No OS X, ele mapeia para DYLD_LIBRARY_PATH

Outras dicas

No entanto, Matt Ball não está totalmente correto.

Na minha caixa Linux, o caminho da minha biblioteca Java é

/usr/lib64/icedtea6/jre/lib/amd64/server:/usr/lib64/icedtea6/jre/lib/amd6ib/amd64:/usr/lib64:/lib64:/lib:/usr/lib

Enquanto meu LD_LIBRARY_PATH é /usr/local/lib64.

Para Java 8, isso difere com base no sistema operacional.Este é o comportamento que observei:

  • 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 e LD_LIBRARY_PATH variáveis ​​são ignoradas.Além disso, ambas as variáveis ​​são removidas do ambiente dos aplicativos Java.
  • Linux CentOS 7/Open JDK 8: java.library.path=$LD_LIBRARY_PATH:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top