在运行Java 1.6.0 update 16的64位RHEL5上,root可以成功运行Java程序,但是用户不能运行,因为libjli.so可能无法find。 程序运行之前,SELinuxclosures,环境相同。 我已经尝试把libjli.so放在LD_LIBRARY_PATH但是没有什么区别。
我该如何解决这个错误?
想到的第一个可能性是libjli.so只能被root用户读取。 所以第一步:
ls -l $(locate libjli.so)
如果它位于一个奇怪的位置(不在/usr/lib或/lib ),创build/etc/ld.so.conf.d/java.conf文件,其中包含libjli.so所在目录的path,并运行/sbin/ldconfig作为根。
有关更多的疑难解答信息,请以root身份运行此命令,并以非root用户身份运行一次:
ldd java
在一个理智的世界里,两者的输出是一致的。 他们有什么不同应该告诉你很多为什么这是失败的。