在运行 Java 1.6.0 update 16 的 64 位 RHEL5 上,root 可以成功运行 Java 程序,但用户无法运行,因为libjli.so
据说找不到。SELinux 已关闭,并且环境与程序运行前相同。我尝试过输入,libjli.so
但LD_LIBRARY_PATH
没有什么区别。
我该如何修复这个错误?
答案1
首先想到的可能性是libjli.so
只有 root 才能读取。因此第一步:
ls -l $(locate libjli.so)
如果它位于奇数位置(不在/usr/lib
或中),则创建包含目录路径的/lib
文件并以 root 身份运行。/etc/ld.so.conf.d/java.conf
libjli.so
/sbin/ldconfig
要获取更多故障排除信息,请以 root 用户身份运行此命令,一次以非 root 用户身份运行:
ldd java
在正常情况下,两者的输出应该相同。它们之间的差异应该可以告诉你为什么会失败。