Ubuntu 16.04に最新のOracle JDK(8または9)をインストールしたときにいくつかの議論が見つかりました。
https://askubuntu.com/questions/521145/how-to-install-oracle-java-on-ubuntu-14-04
https://askubuntu.com/questions/159575/how-do-i-make-java-default-to-a-manually-installed-jre-jdk
私は彼らの方法を次のように要約します。
一部は、 を表現するのに
update-alternatives
使用しますjava
。javac
javaws
はい)、一部はより多くのコマンドに使用されますが( はい、はい、はい、はい)。どちらが適用するコマンドの完全なリストを提供しているのかわかりませんupdate-alternatives
。一部は
update-java-alternatives
(はい、はい、)、しかし一部は手動インストールでは機能しないと言います。。いくつかは
update-alternatives
とupdate-java-alternatives
(はい)一部の人々は複数の環境変数を変更し、最初の2つの方法が不必要に複雑だと思います(はい、 )
update-alternatives
一部は同時に複数の環境変数を使用して変更します。はい)
どの方法が推奨されるかを知りたいです。
ありがとうございます。
答え1
Javaの代替案を推奨すると言うとき、インストールされているupdate-java-alternatives
すべてのJavaプロバイダが必要なインフラストラクチャを提供すると仮定します。これはDebianとその派生製品で提供されるOpenJDKパッケージの場合ですが、必ずしも他のJDKパッケージではなく、手動でインストールされたJDKの場合は該当しません。生成されたOracle JDKパッケージの使用java-package
する必要なインフラを提供します。すべてのJavaコマンドを手動で設定するための代替案は、人々の時間の無駄だと思います。 Oracle JREまたはJDKをインストールするにはjava-package
。
要点update-java-alternatives
は、基本JRE / JDKツールの設定が一貫していることを確認することです。理論的には、update-alternatives
「--slave
関係」を使用してこれを実行できます。ただし、これは通常OpenJDKパッケージには適用されません。これは、利用可能なツールのサブセットをインストールでき、update-alternatives
問題が解決されないためです。したがって、生成され、update-java-alternatives
すべてのツールを処理できます。はいインストールされており、他のものについての苦情はありません。正しく機能するには、update-java-alternatives
JRE / JDKパッケージが/usr/lib/jvm
(例えば .java-1.8.0-openjdk-amd64.jinfo
)。 (update-alternatives
明らかにRPMベースのディストリビューションはこの問題を解決しますが、まだ詳細については見ていません。)
JAVA_HOME
Java自体には、インストールされている複数のJRE / JDK、つまり環境変数から選択する独自の方法があります。実際に補完的update-java-alternatives
ですJAVA_HOME
。要件に応じて、異なるJRE / JDKを指すように設定することが可能でなければなりません。update-java-alternatives
許可するシステム管理者システムは、どのJRE / JDKがデフォルト値であるかを指定します(実際には、パッケージマネージャはどちらがデフォルト値であるかを指定できると考えることができます。これはすべて管理者とユーザーにとって透過的に機能する必要があります)。JAVA_HOME
すべてのユーザーまたは起動スクリプトが特定の環境で使用する必要があるJRE / JDKを指定できるようにします。 Unixスタイルのシステムでは(Windowsとは異なり)、選択項目などを動的に有効にすることはできPATH
ないため、設定を追跡するためにデフォルト値などが必要な場合(最初に追加)、変更時にリセットすることを覚えておく必要があります。PATH
JAVA_HOME
java
javac
PATH
JAVA_HOME
java
JAVA_HOME
$JAVA_HOME/bin
PATH
これらすべてのポイントは私の答えに似ています「update-alternatives」を使用する代わりに環境変数を設定しますか?:システム管理者はupdate-java-alternatives
システムで定義されているデフォルトのJRE / JDKを使用する必要があります(またはパッケージが独自に選択できるようにする)、ユーザーは特定の環境JAVA_HOME
で定義されているJRE / JDKを使用できます。