在为64位CentOS 5计算机上的简单bash脚本启动的Java进程(例如com.example.Main
)设置本机库路径时,我遇到了一个问题。
相关的脚本代码如下:
#!/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
类会导致抛出Java InternalError,尽管库文件位于/opt/extra/lib64
中。但是,如果我将这些相同的库文件复制到/usr/lib64
,则错误消失,代码按预期工作。 (顺便说一句,env显示未设置LD_LIBRARY_PATH
,因此某些默认设置显然使用/ usr / lib64。)
这是正常行为吗?
谢谢!