web-dev-qa-db-ja.com

デフォルトのJavaバージョンを設定する方法

Ubuntu 11.10でJava 6を使用していましたが、バージョン7に更新したいのですが、PPAでバージョン7をインストールしました ここで説明 。走ったら

Sudo update-alternatives --config Java

次の出力が得られます。

There are 2 choices for the alternative Java (providing /usr/bin/Java).

  Selection    Path                                     Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/Java-7-Oracle/jre/bin/Java   64        auto mode
  1            /usr/lib/jvm/Java-6-Sun/jre/bin/Java      63        manual mode
* 2            /usr/lib/jvm/Java-7-Oracle/jre/bin/Java   64        manual mode

同様に、私が実行した場合:

Sudo update-alternatives --config javac

私は出力を取得します:

  Selection    Path                                  Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/Java-7-Oracle/bin/javac   64        auto mode
  1            /usr/lib/jvm/Java-6-Sun/bin/javac      63        manual mode
* 2            /usr/lib/jvm/Java-7-Oracle/bin/javac   64        manual mode

そのため、バージョン7がすでにデフォルトになっているようです。しかし、私がどちらかを実行した場合

Java -version

または

javac -version

出力は、バージョン6がまだデフォルトであることを示しています。デフォルトをバージョン7に設定するにはどうすればよいですか?

8
Dónal

この答えに従って: デフォルトJavaバージョンを設定する方法?

最初にupdate-alternatives --installとともに明示的なパスを指定してから、update-alternativesを実行して選択を行ってください。

Sudo update-alternatives --install "/usr/bin/Java" "Java" "/usr/lib/jvm/Java-7-Oracle/jre/bin/Java" 1

Sudo update-alternatives --config Java

Sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/Java-7-Oracle/bin/javac" 1

Sudo update-alternatives --config javac
4
Aaron

javacも設定する必要があります。

Sudo update-alternatives --config javac
3
Paradiesstaub

同じ問題がありました。 Sun jdk6をインストールしました。後

    Sudo update-alternatives --config Java
    Sudo update-alternatives --config javac
    Sudo update-alternatives --config javaws

再起動が必要でした。それが働いたより。

編集:上記の手順を実行するには不十分であることに気付きました。

環境変数も編集する必要がありました。

    Sudo nano /etc/environment

追加します(異なるJavaバージョンには異なる文字列が必要です):

    Java_HOME="/usr/lib/jvm/Java-7-openjdk-AMD64"
1
Chris S

上記のほぼすべての方法を試しましたが、Java -versionが既に正しいバージョンを指しているのに、ls -al /etc/alternatives/Javaが間違ったバージョンを出力していることがわかりました。

だから私は実行します:which Javaそして結果は/usr/local/jdk_xxx/bin/JavaからJavaを使用していることを示していることがわかり、このフォルダーを削除してターミナルを再起動しました。これで、Javaがうまく機能します。

それが他の人を助けることを願っています。

0
Xinjing

Javaバイナリが/etc/alternatives/Java以外の場所を指していると思います。

type Javaの出力を確認します

/usr/bin/Javaと言っていますか?もしそうなら、それが代替を正しく指しているかどうかを確認してください:

ls -l /usr/bin/Javaは、/etc/alternatives/Javaを指すように表示する必要があります。

最後に、/etc/alternatives/Java自体がJava-7を指​​していることを確認します。
ls -l /etc/alternatives/Java

Update-alternativesコマンドは最後のコマンドのみを調整し、デフォルトが/usr/bin/Javaを指していると想定します。これは/etc/alternatives/Javaに正しくリンクされます。

0
sumwale

目的のパスを識別する番号を挿入し、Enterキーを押します。この場合、1を挿入します。

最後に、バージョンをテストしてみてくださいJava -version

0
obysr