在为 Java 进程(例如 )设置本机库路径时,我遇到了一个问题,该进程是com.example.Main
通过 64 位 CentOS 5 机器上的简单 bash 脚本启动的。
相关脚本代码如下:
#!/bin/bash
export JAVA_HOME=/usr/local/java
export EXTRA_LD_LIBRARY_PATH=/opt/extra/lib64:/opt/extra/java/libs
${JAVA_HOME}/bin/java -Djava.library.path=${EXTRA_LD_LIBRARY_PATH}:${LD_LIBRARY_PATH} com.example.Main
在 中EXTRA_LD_LIBRARY_PATH
,我放置了一些Main
类需要的 64 位本机库。
但是,Main
尽管库文件位于/opt/extra/lib64
. 但是,如果我将这些相同的库文件复制到/usr/lib64
,则错误消失并且代码按预期工作。(顺便说一句, env 显示LD_LIBRARY_PATH
未设置,因此 /usr/lib64 显然被某些默认设置使用。)
这是正常的行为吗?
谢谢!