開いている共有オブジェクトファイルlibjli.soが見つかりません—そのようなファイルまたはディレクトリはありません


8

Java 1.6.0 update 16を実行する64ビットRHEL5では、rootはJavaプログラムを正常に実行できますが、ユーザーが見つからないため、ユーザーは実行できませんlibjli.so。SELinuxはオフになっており、プログラムを実行する前の環境は同じです。私は入れてみlibjli.soましたLD_LIBRARY_PATHが、違いはありません。

このエラーを修正するにはどうすればよいですか?

回答:


9

頭に浮かぶ最初の可能性は、libjli.sorootだけが読み取ることができることです。だからステップ1:

ls -l $(locate libjli.so)

奇妙な場所(/usr/libまたは以外/lib)にある場合/etc/ld.so.conf.d/java.confは、ディレクトリを含むパスへのパスを含むファイルを作成し、ルートとしてlibjli.so実行/sbin/ldconfigします。

トラブルシューティングの詳細については、次のコマンドを1回はrootとして、もう1回は非rootユーザーとして実行してください。

ldd java

健全な世界では、2つの出力は同じになります。それらがどのように異なるかによって、これが失敗する理由について多くのことがわかるはずです。


Sheesh、LD_LIBRARY_PATHを設定していたので、ldconfigのconfは役に立たないと思いました。ldd javaはlibjliの「..」を含む相対パスを返します。パッケージャーがこの特定のJava 1.6.0アップデート16 FCSクライアントを期待していたため、うまくいきませんでした。
joeforker 2009
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.