web-dev-qa-db-ja.com

update-alternatives:JDK7の更新中に「代替パスが存在しない」問題

JDK7を here から最新バージョンに更新することにしました。

アーキテクチャに対応するx64 tag.gzアーカイブがダウンロードされ、通常どおり/usr/lib/jvmに抽出されました。 Javaの以前のバージョンはすべて、同じ方法の前にインストールされました。しかし、Javajavac、およびjavawsの新しい代替を設定する前に、次のコマンドを使用して既存の代替をすべて削除しました。

Sudo update-alternatives --remove-all Java
Sudo update-alternatives --remove-all javac
Sudo update-alternatives --remove-all javaws

今、新しい選択肢をインストールしようとすると、次のようになります:

Sudo update-alternatives --install /usr/lib/jvm/jdk1.7.0_13/bin/Java java /usr/bin/Java 1
update-alternatives: error: alternative path /usr/bin/Java doesn't exist.

もちろん、/usr/bin/Javaは存在しませんが、/usr/binは存在しますか?何が問題なのですか、どうすれば修正できますか?

8
Ezze

それは私の壮大なせいです! :)

update-alternativesの引数を混同しました。正しいコマンドラインは次のとおりである必要があります。

Sudo update-alternatives --install /usr/bin/Java java /usr/lib/jvm/jdk/bin/Java 1
7
Ezze

手動で削除した以前のJavaバージョンから更新しているため、次のコマンドを2回実行する必要があります。最初にエラーメッセージが表示され、2回目に実行したときに機能します。

Sudo update-alternatives --install "/usr/bin/Java" "Java" "/usr/lib/jvm/jdk/bin/Java" 1

ソース: Easy Linux Project

2
Aditya