Javaの更新に問題があります。 Ubuntu 11.10を実行しています。
正常に実行してsudo apt-get install openjdk-7-jdk
完了できます。javac -version
1.7なのにjava -version
1.6ですね。これは次のようになります。この問題しかし、私が知っている限り、私の問題は道ではありません。
$ echo $PATH
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
ありがとうございます。
答え1
修正する:
良い説明があるウェブサイトを見つけました:協会
リンクから:
その後、いくつかの構成を実行する必要があります。 Debianには、プログラム
のさまざまなバージョンを維持するスクリプトがあります。java
update-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パスを提供するだけです。