0

在为 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 显然被某些默认设置使用。)

这是正常的行为吗?

谢谢!

4

0 回答 0