JDKバージョン(jdk1.7.0_21およびjdk1.7.0_55)
以下のようにインストールおよび構成されます。
jdk1.7.0_21
update-alternatives --install "/usr/bin/Java" "Java" "/usr/lib/jvm/jdk1.7.0_21/bin/Java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_21/bin/javac" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0_21/bin/javaws" 1
Sudo chmod a+x /usr/bin/Java
Sudo chmod a+x /usr/bin/javac
Sudo chmod a+x /usr/bin/javaws
Sudo chown -R root:root /usr/lib/jvm/jdk1.7.0_21
jdk1.7.0_55
update-alternatives --install "/usr/bin/Java" "Java" "/usr/lib/jvm/jdk1.7.0_55/bin/Java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk1.7.0_55/bin/javac" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/jdk1.7.0_55/bin/javaws" 1
Sudo chmod a+x /usr/bin/Java
Sudo chmod a+x /usr/bin/javac
Sudo chmod a+x /usr/bin/javaws
Sudo chown -R root:root /usr/lib/jvm/jdk1.7.0_55
そして、デフォルトのJDKを選択/変更しています
update-alternatives --config Java
update-alternatives --config javac
update-alternatives --config javaws
この後、Java -version
がデフォルトであるときにjdk1.7.0_55
を実行すると、出力は次のようになります。
root@ssa-lpt:/usr/lib/jvm# Java -version
Java version "1.7.0_55"
Java(TM) SE Runtime Environment (build 1.7.0_55-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.55-b03, mixed mode)
ただし、jdk1.7.0_21
はデフォルトですが、次のようなメッセージが表示されます
Java:共有ライブラリのロード中にエラーが発生しました:libjli.so:共有オブジェクトファイルを開けません:そのようなファイルまたはディレクトリはありません
私が発行する場合:libjli.soを見つける
/usr/lib/jvm/jdk1.7.0_55/jre/lib/AMD64/jli/libjli.so
/usr/lib/jvm/jdk1.7.0_55/lib/AMD64/jli/libjli.so
したがって、jdk1.7.0_21
を選択したが、どういうわけかjdk1.7.0_55
を指しているのは明らかです。
jdk1.7.0_55
の名前を変更しようとしましたが、運はありません。
これを修正する方法がわからない。助けてくれてありがとう:)
Solution ::私のjdk1.7.0_21
が壊れていたため、/usr/lib/jvm/
にあるOracleから新しいコピー形式をダウンロードしました。
このエラーが表示される理由は多すぎます。
これらすべてのコマンドを1つずつ実行して、ここに出力を投稿してください。
file /usr/bin/Java
type /usr/bin/Java
echo $Java_HOME
echo $PATH
ls -ahl /usr/lib/jvm
次に-update-alternatives
を使用してjdk1.7.0_55を選択し、これを実行します
$ ldd $(which Java)
update-alternatives
を使用してjdk1.7.0_21を選択し、これを実行します
$ ldd $(which Java)
それからjdk1.7.0_21でこれを実行します
$ Sudo Java -version
更新。答え
同じ問題を抱えているすべての人に:
まず、Sudo ldconfig
を実行します。 いつでもldconfig
を実行しても安全です
長い議論の後、jdk1.7.0_21が破損していると結論付けました。
決定方法:
jdk1.7.0_21
、Sudo Java -version
を選択すると、rootとして実行してもエラーが発生します。find /usr/lib/jvm -name "libjli.so"
、このコマンドは、libjli
がjdk1.7.0_21
がインストールされているフォルダーにあることを示す必要があります。私たちの場合、そうではありませんでした。その他の場合:
Jdkがroot:root
に属していることを確認します
/usr/bin/Java
が実行可能ファイルではなくシンボリックリンクであることを確認してください。
update-alternatives
を使用している場合は、PATH
を確認してください。JavaはPATHに含まれないようにしてください。
また、役立つリンクもここにあります。