Javaの更新に問題があります。 Ubuntu 11.10を実行しています。
Sudo apt-get install openjdk-7-jdk
と正常に完了します。 javac -version
は1.7ですが、Java -version
は1.6です。これは this problem に似ていますが、私の問題は、私が知る限り、パスではありません。
$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
ありがとう。
更新:
かなり良い説明があるサイトを見つけました: [〜#〜] link [〜#〜]
リンクから:
次に、いくつかの構成を行う必要があります。
Debianには、_update-alternatives
_と呼ばれるJava
のような異なるバージョンのプログラムを維持するためのスクリプトがあります。
update-alternatives --install/usr/bin/Java java /usr/lib/jvm/jdk1.7.0/bin/Java 1065 update-alternatives --install/usr/bin/javac javac /usr/lib/jvm/jdk1.7.0/bin/javac 1065
ここで、1065が優先されます。
インストールを確認するには、_–config
_パラメータを使用します
_update-alternatives --config Java
_
これは印刷します:There are 2 choices for the alternative Java (providing /usr/bin/Java).
選択パスの優先度ステータス ------------------------------------ ------------------------ * 0 /usr/lib/jvm/jdk1.7.0/bin/Java 1065 auto mode 1/usr/lib/jvm/Java-6-openjdk/jre/bin/Java 1061 manual mode 2 /usr/lib/jvm/jdk1.7.0/bin/Java 1065 manual mode
そして、1065は1061より高いので、新しくインストールされたJava= 7が私のマシンでデフォルトで使用されます_Java -version
_
プリント:
Javaバージョン "1.7.0" Java(TM)SEランタイム環境(ビルド1.7.0-b147) Java HotSpot(TM )64ビットサーバーVM(ビルド21.0-b17、混合モード)
注:これにより、理解しやすくなる場合があります。
SLES11#どのJava /usr/bin/Java SLES11#update-alternatives --list Java /usr/lib64/jvm /jre-1.6.0-ibm/bin/Java SLES11#update-alternatives --display Java java-status is auto。 リンクは現在ポイントしています/usr/lib64/jvm/jre-1.6.0-ibm/bin/Java /usr/lib64/jvm/jre-1.6.0-ibm/bin/Javaへ-優先度1608 スレーブrmiregistry:/usr/lib64/jvm/jre-1.6.0-ibm/bin/rmiregistry スレーブtnameserv:/usr/lib64/jvm/jre-1.6.0-ibm/bin/tnameserv スレーブrmid:/usr/lib64/jvm/jre-1.6.0-ibm/bin/rmid スレーブjre_exports:/usr/lib64/jvm-exports/jre-1.6.0-ibm スレーブポリシーツール:/usr/lib64/jvm/jre-1.6.0-ibm/bin/policytool スレーブキーツール:/usr/lib64/jvm/jre-1.6.0-ibm/bin/keytool スレーブjre:/usr/lib64/jvm/jre-1.6.0-ibm 現在の「最適な」バージョンは/usr/lib64/jvm/jre-1.6.0-ibm/bin/Javaです。
Manページには、update-alternativesがディレクトリに使用するパスが記載されています。
SLES11#pwd /etc/alternatives SLES11#ll lrwxrwxrwx 1 root root 37 Mar 19 06:03 Java-> /usr/lib64/jvm/jre-1.6.0-ibm/bin/Java lrwxrwxrwx 1ルートルート28 Mar 19 06:03 jre->/usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 28 Mar 19 06:03 jre_1.6.0-> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 Mar 19 06:03 jre_1.6.0_exports-> /usr/lib64/jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1 root root 36 Mar 19 06:03 jre_exports->/usr/lib64 /jvm-exports/jre-1.6.0-ibm lrwxrwxrwx 1ルートルート28 Mar 19 06:03 jre_ibm-> /usr/lib64/jvm/jre-1.6.0-ibm lrwxrwxrwx 1ルートルート36 Mar 19 06:03 jre_ibm_exports-> /usr/lib64/jvm-exports/jre-1.6.0-ibm
それらが既にインストールされていて、デフォルトを変更する必要があるだけの場合は、変更を加えます。
SLES11#update-alternatives --config Java Javaを提供するプログラムは1つしかありません (/ usr/lib64/jvm/jre-1.6.0 -ibm/bin/Java)。構成するものはありません。
元の回答:
_/etc/Java
_または_/etc/Java-7-openjdk
_のようなものを調べると、構成ファイルが表示されます。
_Java.conf
_または_jvm.cfg
_
これは通常、オプションに設定された構成ファイルに依存します。 Javaの複数のバージョンを同時にインストールし、起動変数を変更して、どちらがデフォルトのJVMになるかを指定できます。
centOSから_Java.conf
_
#ベースJREパッケージがインストールされている場合 #(例:Java-1.6.0-openjdk): #Java_HOME = $ JVM_ROOT/jre # devel JDKパッケージがインストールされている場合 #(例:Java-1.6.0-openjdk-devel): #Java_HOME = $ JVM_ROOT/Java
ubuntuから_jvm.cfg
_
#Java、javacなどのオプションとして使用できるJVMのリスト。 #順序は重要です。このリストの最初はデフォルトのJVMです。 #注これは、このファイルとその形式の両方がサポートされていないことと、 #は将来のリリースで廃止される予定です。 # #また、 # "-XXaltjvm ="オプションですが、これもサポートされていません #であり、将来のリリースでは使用できなくなる可能性があります。 。]-client IGNORE -hotspot ERROR -classic WARN -native ERROR -green ERROR -jamvm KNOWN -cacao KNOWN -zero KNOWN -shark ALIASED_TO -zero
Ubuntuには_update-Java-alternatives
_というプログラムがあります
これは、manページの最初の数行です
NAME update-Java-alternatives-jre/sdkインストールの代替手段を更新します 構文 update-Java-alternatives [--jre] [--plugin] [-t | --test | -v | --verbose] -l | --list [] -s | --set - a | --auto -h |-?| --help DESCRIPTION update-Java-alternativesは、1つのランタイムまたは開発キットに属するすべての選択肢を更新しますJava言語。パッケージはこれらを提供します /usr/lib/jvm/..jinfo.
root @ ubuntul:/#update-Java-alternatives -l Java-1.6.0-openjdk 1061 /usr/lib/jvm/Java-1.6.0-openjdk
-s | --set 登録済みのjre/sdkインストールのすべての代替を、インストールによって提供されるプログラムパスに設定します。
また、Java起動環境の場合の_/etc/profile.d
_のリンクも一般的に表示されます。
私の推測では、Javaライブラリは同じ場所にインストールされており、設定ファイルはデフォルトで元のバージョンのままです。新しいJVMパスを指定するだけで十分です。