web-dev-qa-db-ja.com

JDK 8をデフォルトとして設定Java

Java SDK 8ツール(debianバックポートリポジトリからインストール))をデフォルトとして設定しようとしています。

# update-Java-alternatives --list
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

# update-Java-alternatives --set /usr/lib/jvm/Java-1.8.0-openjdk-AMD64
update-alternatives: error: no alternatives for mozilla-javaplugin.so
update-Java-alternatives: plugin alternative does not exist: /usr/lib/jvm/Java-8-openjdk-AMD64/jre/lib/AMD64/IcedTeaPlugin.so

ええと、そのエラーは別として(私が信じるようになっているのは https://askubuntu.com/questions/141791/is-there-a-way-to-update-all- Java-related-alternatives 。そうでない場合、私はこれを修正する方法がわかりません。jdk8のicedteaプラグインが表示されないためです)、これでトリックは完了したはずですよね?

しかし、多くのJavaツールは依然としてJava 7:

# update-alternatives --get-selections | grep Java
appletviewer                   manual   /usr/lib/jvm/Java-8-openjdk-AMD64/bin/appletviewer
extcheck                       auto     /usr/lib/jvm/Java-7-openjdk-AMD64/bin/extcheck
idlj                           auto     /usr/lib/jvm/Java-7-openjdk-AMD64/bin/idlj
jar                            auto     /usr/lib/jvm/Java-7-openjdk-AMD64/bin/jar
jarsigner                      auto     /usr/lib/jvm/Java-7-openjdk-AMD64/bin/jarsigner
Java                           manual   /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java
javac                          auto     /usr/lib/jvm/Java-7-openjdk-AMD64/bin/javac
javadoc                        auto     /usr/lib/jvm/Java-7-openjdk-AMD64/bin/javadoc
...

何ができますか?壊れた?

編集:

これを回避するには:

for i in `update-alternatives --get-selections | grep Java | awk '{print $1}'`; do update-alternatives --config $i; done

これにより、ツールごとに手動でプロンプトが表示されます。これには1分ほどかかります。それでも、もっと良い方法があるかどうか知りたいのですが。

8
Edd Barrett

update-Java-alternativesには更新するオプションがあります--jre-headless--jre--plugin 別々に。

使用する

Sudo update-Java-alternatives --jre-headless --jre --set Java-1.8.0-openjdk-AMD64

プラグインがインストールされていないDebian Jessieサーバーで私のために働いた。

5
hfs

Ubuntuでは、JDK1.8はデフォルトではインストールされません。 Java選択肢をリストする場合

_$ update-Java-alternatives -l
Java-1.11.0-openjdk-AMD64      1101       /usr/lib/jvm/Java-1.11.0-openjdk-AMD64
Java-1.8.0-openjdk-AMD64       1081       /usr/lib/jvm/Java-1.8.0-openjdk-AMD64
Java-7-Oracle                  1082       /usr/lib/jvm/Java-7-Oracle
_

このリストの_Java-1.8.0-openjdk-AMD64_はJDKではなく、JREです。 JREには、javac、javadocなどの必要な開発ツールがすべて含まれているわけではありません。binディレクトリにこれらのファイルが含まれているかどうかを確認できます。これが、これらのツールを登録しない理由です。

したがって、最初にJDKをインストールする必要があります

_Sudo apt install openjdk-8-jdk
_

そして、代替を変更します

_Sudo update-Java-alternatives -s Java-1.8.0-openjdk-AMD64
_
4
misbah

Debianでこれを実現する最も簡単な方法は、このコマンドを使用することです

update-alternatives --config Java

次に、次のような出力が得られます。

*0  /usr/lib/jvm/Java-8-openjdk-AMD64/bin/Java  auto mode
 1  /usr/lib/jvm/jdk1.7.0/bin/Java              manual mode

次に、インデックス番号を入力して、デフォルトの選択(「*」でマークされている)を変更できます。たとえば、デフォルトのJVMとしてJava 7を使用するには、「1」を選択します。変更を確認するためにコマンドを再度実行できます。

それが役に立てば幸い。

1
patan90

Linux(Debianなど)の場合:

# update-alternatives --config Java
# update-alternatives --config javac
# update-alternatives --config javaws

例:

$ Sudo update-alternatives --config Java
There are 4 choices for the alternative Java (providing /usr/bin/Java).

  Selection    Path                                            Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/Java-10-Oracle/bin/Java             1091      auto mode
* 1            /usr/lib/jvm/Java-10-Oracle/bin/Java             1091      manual mode
  2            /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java   1081      manual mode
  3            /usr/lib/jvm/Java-8-Oracle/jre/bin/Java          1081      manual mode
  4            /usr/lib/jvm/jdk1.7.0_80/bin/Java                1         manual mode

Press <enter> to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java to provide /usr/bin/Java (Java) in manual mode
1
CamelTM

Javaのホーム変数Java 8以下のファイルで変更する必要があります

  'vi /etc/environment'

このフォーマットで

Java_HOME-/usr/lib/jvm/Java-8-Oracle

を使用して設定ファイルをリロードします

'. /etc/environment'

そしてこれで確認

   echo  $Java_HOME
0
SuperKrish