openjdk-7-jdkをインストールしてもJavaは更新されません(まだバージョン1.6)。

openjdk-7-jdkをインストールしてもJavaは更新されません(まだバージョン1.6)。

Javaの更新に問題があります。 Ubuntu 11.10を実行しています。

正常に実行してsudo apt-get install openjdk-7-jdk完了できます。javac -version1.7なのにjava -version1.6ですね。これは次のようになります。この問題しかし、私が知っている限り、私の問題は道ではありません。

$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

ありがとうございます。

答え1

修正する:

良い説明があるウェブサイトを見つけました:協会


リンクから:

その後、いくつかの構成を実行する必要があります。 Debianには、プログラム
のさまざまなバージョンを維持するスクリプトがあります。javaupdate-alternatives

代替アップデート --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0/bin/java 1065
代替アップデート --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自動モード
  1 /usr/lib/jvm/java-6-openjdk/jre/bin/java 1061 手動モード
  2 /usr/lib/jvm/jdk1.7.0/bin/java 1065 手動モード

そして、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#代替アップデート --list java
/usr/lib64/jvm/jre-1.6.0-ibm/bin/java

SLES11#代替更新 - javaを表示
java - 状態は自動です。
 リンクは現在/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です。

マニュアルページは、update-alternatives にそのディレクトリへのパスを提供します。

SLES11#password
/etc/代替

SLES11#ll
lrwxrwxrwx 1 root root 37 3月19日06:03 java - > /usr/lib64/jvm/jre-1.6.0-ibm/bin/java
lrwxrwxrwx 1ルートルート28 3月19日06:03 jre -> /usr/lib64/jvm/jre-1.6.0-ibm
lrwxrwxrwx 1ルートルート28 3月19日06:03 jre_1.6.0 -> /usr/lib64/jvm/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 3月19日、36日、06:03 jre_1.6.0_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 3月19日、36日、06:03 jre_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm
lrwxrwxrwx 1ルートルート28 3月19日06:03 jre_ibm -> /usr/lib64/jvm/jre-1.6.0-ibm
lrwxrwxrwx 1 root root 3月19日、36日、06:03 jre_ibm_exports -> /usr/lib64/jvm-exports/jre-1.6.0-ibm

すでにインストールされていてデフォルト値のみを変更する必要がある場合は、そうします。

SLES11#代替アップデート --config java

1つのプログラムでのみJavaを提供します。
(/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です。
#このファイルまたはそのフォーマットはすべてサポートされていません。
#以降のバージョンでは消える予定です。
#
#次のコマンドを使用してどこからでもJVMを選択できます。
# "-XXaltjvm=" オプションですが、このオプションもサポートされていません。
#将来のリリースでは利用できない可能性があります。
#
- サーバーが知られている
- クライアントが無視する
- ホットスポットエラー
- 古典的な警告
- 基本エラー
- 緑のエラー
-javmが知られている
- 既知のココ
- 既知の0
- サメ ALIASED_TO - ゼロ

Ubuntuには次のプログラムがあります。update-java-alternatives
これはマニュアルページの一番上の行です。

名前
       update-java-alternatives - jre/sdk インストールアップデートの代替

要約
       アップデート - Java - 代替 [--jre] [--プラグイン] [-t|--test|-v|--verbose]
             -l|--リスト[]
             -s|--設定
             -a|--自動
             -h|-?|--ヘルプ

説明する
       update-java-alternatives 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|--設定
              登録されたjre / sdkインストールのすべての代替をインストール時に提供されるプログラムパスに設定します。

/etc/profile.d通常、Java 起動環境へのリンクも表示されます。

私の考えでは、Javaライブラリが同じ場所にインストールされていて、設定ファイルがまだ元のバージョンにデフォルト設定されているようです。新しいJVMパスを提供するだけです。

関連情報