99

Linux Debian(Squeeze)にApacheSolrをインストールしています。sun-javajdk1stをインストールするように指示されました。次に、コマンドsudo update-alternatives --config javaを使用して、特定のJava(sun-java)がデフォルトのランタイムであることを確認する必要があると言われます。しかし、このコマンドを実行すると、次のようになります。

There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                      Priority   Status
------------------------------------------------------------
* 0            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      auto mode
  1            /usr/bin/gij-4.4                           1044      manual mode
  2            /usr/lib/jvm/java-6-openjdk/jre/bin/java   1061      manual mode
  3            /usr/lib/jvm/java-6-sun/jre/bin/java       63        manual mode

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

では、デフォルトのランタイムとしてsun-javaを使用するには、どの番号を選択する必要がありますか?また、自動モードと手動モードは正確にはどういう意味ですか?上記の3を選択してupdate-alternativeコマンドを実行すると、上記と同じ出力が表示されますが、手動モードを読み取りますが、*が3の前にあることを除いて、何も変わっていないようです。

私がしたことが正しいことを確認する方法はありますか?

4

10 に答える 10

59

オプションを選択した後に「java -version」と入力すると、オプションを選択する際に大きな変化に気付くでしょう。したがって、update-alternatives --config javaオプションを実行して選択すると、 Sunの実装3が使用されます。また、 vs に関しては、選択を行うと、次のようにこのページから削除する必要があります。
automanual modeauto mode

このオプションを使用する--configと、alternatives は、指定された名前がマスター リンクであるリンク グループのすべての選択肢を一覧表示します。次に、リンク グループに使用する選択肢の選択を求めるプロンプトが表示されます。変更を加えると、リンク グループは になくなります auto mode--auto自動状態に戻すには、オプションを使用する必要があります。

そしてauto mode、最初/唯一のJRE/JDKをインストールすると設定されると思います。

于 2012-10-08T19:00:08.787 に答える
39

update-alternativesこの場合、JDK に応じてすべての要素を更新する必要があるため、問題があります。

この特定の目的のために、パッケージjava-commonには と呼ばれるツールが含まれていますupdate-java-alternatives

それを使用するのは簡単です。最初に、マシンで利用可能な JDK インストールを一覧表示します。

root@mylaptop:~# update-java-alternatives -l
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64 1069 /usr/lib/jvm/java-1.8.0-openjdk-amd64

そして、次のいずれかを選択します。

root@mylaptop:~# update-java-alternatives -s java-1.7.0-openjdk-amd64
于 2015-10-05T17:39:13.940 に答える
21

これは私がjdkをインストールする方法です

#!/bin/bash
cd /opt/
sudo mkdir java
sudo tar -zxvf ~/Downloads/jdk-8u192-linux-x64.tar.gz
sudo ln -s  jdk1.8.0_192 current
for file in /opt/java/current/bin/*
do
   if [ -x $file ]
   then
      filename=`basename $file`
      sudo update-alternatives --install /usr/bin/$filename $filename $file 20000
      sudo update-alternatives --set $filename $file
      #echo $file $filename
   fi
done
于 2018-12-23T10:24:58.477 に答える
7

リンクする必要のあるバイナリは他にもたくさんありsudo update-alternatives --allます。javajavac

于 2014-07-08T08:24:37.330 に答える
0

開いている jdk をインストールしたら、目的の jdk を実行して選択します。

sudo update-alternatives --config java

コマンドラインのスクリーンショット

于 2021-05-28T14:12:00.097 に答える