デフォルトの Java バージョンを設定するにはどうすればいいですか?

デフォルトの Java バージョンを設定するにはどうすればいいですか?

私はここで述べられているすべての指示に従いました質問ですが、最後の部分でいくつか問題が発生しています。

私は現在 Java のバージョン 6.22 を使用していますが、バージョン 6.30 にアップデートしたいと考えています。

したがって、抽出したディレクトリを移動した後、java-6-oracle上記/usr/lib/jvmの回答で指摘されているスクリプトが Java 5 から Java 6 に更新されるため、何をすべきかわかりません。

わかりやすくするために、lsin dirを実行した場合の出力を以下に示します/usr/lib/jvm

$ ls -l /usr/lib/jvm
total 8 
lrwxrwxrwx  1 root root   14 2011-07-12 15:18 default-java -> java-6-openjdk
lrwxrwxrwx  1 root root   14 2011-07-12 12:19 java-1.6.0-openjdk -> java-6-openjdk 
drwxr-xr-x 10 root root 4096 2012-04-12 12:06 java-6.31-oracle 
drwxr-xr-x  7 root root 4096 2012-02-24 14:43 java-6-openjdk

私は今どうすればいい?


追加部分

@fossfreedom の提案に従って、とにかくスクリプトを実行したところ、実際に Java バージョンが更新されました。

実際にコマンドを実行すると、java -version出力は次のようになります。

$ java -version
java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) Server VM (build 20.6-b01, mixed mode)

があるまだ問題、Irun を実行すると、javac -version古いバージョンがインストールされたと表示されます。

$ javac -version
javac 1.6.0_22

そして、このテスターを使うとリンクバージョンが

Java Version 1.6.0_22 from Sun Microsystems Inc.

何が問題なのですか?

Java Runtime Environment は更新されたようですが、Java コンパイラとブラウザの Java プラグインは更新されていないようです。

どうすれば更新できますか?


その他の追加部分

sudo update-alternatives --config java次の出力を返します

$ 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-6.31-oracle/bin/java     1062      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  2            /usr/lib/jvm/java-6.31-oracle/bin/java     1062      manual mode

Press enter to keep the current choice[*], or type selection number:

これらは、JRE がバージョン 6.31 に正しく更新され、Java コンパイラと Java ブラウザ プラグインに問題があるという事実と合致します。

何か案は?

答え1

最初の質問について:

おそらく、webupd8 スクリプトが 0.5b であると勘違いしているかもしれません。これはスクリプトのバージョンであり、Java のバージョンを指すものではありません。

さらにjavacバージョンの設定。

javacコンパイラのパスを明示的に指定する必要があると思われます

つまり

sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-6.31-oracle/bin/javac" 1

に続く:

sudo update-alternatives --config javac

Java Chrome プラグインの設定について。

主な質問:

Oracle JDK 6 をインストールするにはどうすればよいですか?

この情報が含まれています - フォルダー構造が若干異なるため、リンク コマンドは次のようになります。

ln -s /usr/lib/jvm/java-6.31-oracle/jre/lib/i386/libnpjp2.so ~/.mozilla/plugins/

答え2

見るこれ; 走る

sudo  update-java-alternatives --list

マシン上のすべてのJavaインストールを名前とディレクトリで一覧表示し、

sudo  update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]

使用する JRE/JDK を選択します。

各Javaタスクに異なるJDK/JREを使用する場合は、update-alternativesを実行して一度に1つのJava実行ファイルを構成できます。

sudo  update-alternatives --config java[Tab]

設定可能なJavaコマンド(java、javac、javah、javawsなど)を確認します。そして

sudo  update-alternatives --config [javac|java|javadoc|etc.]

Java タスク/コマンドを特定の JDK/JRE に関連付けます。

一部のアプリケーションではJAVA_HOMEを設定する必要があるかもしれません:この答え使用できます

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

JREの場合、または

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")

JDK の場合。

答え3

update-java-alternativesパッケージのコマンドjava-commonと、それによって使用されるファイルを確認する必要があると思います*.jinfo。これにより、Java インストール (JDK、JRE などに関係なく) を完全に切り替えることができるようになります。

答え4

javac、javaws、javadoc またはその他の Java 関連コマンドの代替を手動で設定する場合は、それらを Java 代替のスレーブにすることをお勧めします。

sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk1.8.0_74/bin/java" 0 --slave "/usr/bin/javadoc" "javadoc" "/opt/jdk1.8.0_74/bin/javadoc"


update-alternatives: updating alternative /opt/jdk1.8.0_74/bin/java because link group java has changed slave links


:/opt/jdk1.8.0_74$ sudo update-alternatives --display java

java - 自動モード リンクの最適なバージョンは /opt/jdk1.8.0_74/bin/java です。リンクは現在 /opt/jdk1.8.0_74/bin/java を指しています。リンク java は /usr/bin/java です。スレーブ javadoc は /usr/bin/javadoc です。/opt/jdk1.8.0_74/bin/java - 優先度 0 スレーブ javadoc: /opt/jdk1.8.0_74/bin/javadoc

/opt/jdk1.8.0_74/ を、jdk がインストールされているディレクトリに変更します。

関連情報