找不到打开的共享对象文件 libjli.so -- 没有这样的文件或目录

joe*_*ker 9 redhat java

在运行 Java 1.6.0 update 16 的 64 位 RHEL5 上,root 可以成功运行 Java 程序,但用户不能,因为libjli.so应该找不到。关闭SELinux,程序运行前环境不变。我试过放入libjli.soLD_LIBRARY_PATH但没有任何区别。

我该如何解决这个错误?

Ins*_*yte 9

想到的第一个可能性libjli.so是只能通过 root 读取。所以第一步:

ls -l $(locate libjli.so)
Run Code Online (Sandbox Code Playgroud)

如果它位于奇怪的位置(不在/usr/lib或 中/lib),则创建/etc/ld.so.conf.d/java.conf包含目录路径的文件,libjli.so/sbin/ldconfig以 root 身份运行。

有关更多故障排除信息,请以 root 用户和非 root 用户身份运行此命令:

ldd java
Run Code Online (Sandbox Code Playgroud)

在一个理智的世界中,两者的输出将是相同的。它们的不同之处应该可以告诉您很多关于失败的原因。