JDK 8をDebian 8のデフォルトJavaとして設定する


8

私は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

うーん、そのエラーは別として(/ubuntu/141791/is-there-a-way-to-update-all-java-related-代替案。そうでなければ、私はこれを修正する方法を知りません、私が見ることができる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分ほどかかります。それでも、もっと良い方法があるかどうか知りたいのですが。

回答:


5

update-java-alternatives更新するオプションがあり--jre-headless--jre、および--plugin別途。

使用する

sudo update-java-alternatives --jre-headless --jre --set java-1.8.0-openjdk-amd64

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


4

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

2

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

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

それが役に立てば幸い。


1

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

0

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

  'vi /etc/environment'

このフォーマットで

JAVA_HOME- / usr / lib / jvm / java-8-oracle

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

'. /etc/environment'

そしてこれで確認

   echo  $JAVA_HOME
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.