web-dev-qa-db-ja.com

Java_HOMEとupdate-alternativesの違いは何ですか?

私は、OpenJDK JavaランタイムをFedoraボックスのデフォルトJavaとして実行し、Android開発、つまりAndroidバンドルからAndroid SDK Manager、Android St​​udioおよびEclipseを実行します。

OpenJDK JavaランタイムをFedoraリポジトリからインストールしました。

[donnie@Fedora ~]$ alternatives --list | grep Java
jre_openjdk             auto    /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
jre_1.7.0               auto    /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre
Java                    auto    /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.60-2.4.5.1.fc20.x86_64/jre/bin/Java
libjavaplugin.so.x86_64 auto    /usr/lib64/IcedTeaPlugin.so

Oracleが提供するrpmを使用してOracle JDK 6をインストールしました。

Android BundleとStudioでJava_HOMEを使用してOracle JDKで実行するには、.bashrcを次のように付け加えます。

export Java_HOME=/usr/Java/jdk1.6.0_45/
export PATH=$Java_HOME/bin:$PATH

ChromeはまだOpenJDKを使用していることに気付きました(プラグインをリンクする必要があるため)。

Java_HOMEと代替の使用の違いは何ですか?

13
Sudhir Khanger

代替案

Alternativesは、alternativesツールの制御下にあるリンクを使用して、インストールされたソフトウェアの場所を管理するツールです。

これらのリンクは最終的に/etc/alternativesの下で管理され、中間リンクは$PATH内のディレクトリの下に作成されます。通常は/usr/binです。

$ ls -l /usr/bin/Java
lrwxrwxrwx. 1 root root 22 Feb 24 17:36 /usr/bin/Java -> /etc/alternatives/Java

$ ls -l /etc/alternatives/Java
lrwxrwxrwx. 1 root root 73 Feb 24 17:36 /etc/alternatives/Java -> /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.60-2.4.5.0.fc19.x86_64/jre/bin/Java

$ Java_HOME

$Java_HOMEは、ソフトウェアに環境変数の使用を調べるように指示できる場所です。 $PATHに追加すると、$Java_HOME/binにある実行可能ファイルが$PATHに追加されます。これは、特定のアプリケーションで必要になる場合があります。

2つのメカニズムは関連していますが、一緒に使用することも、互いに独立して使用することもできます。実際に使用するメカニズムは、Javaアプリケーションによって異なります。

私がやること

通常、一部のGUIアプリケーションでは$Java_HOMEを使用しますが、一般的には、Jetty、Tomcat、JBOSSなどを使用するサーバーインストールでのみ使用します。

これらのインストールでは、alternativesを引き続き使用して、Javaインストールを管理してから$Java_HOMEを設定します。 Javaを複数インストールする。

代替手段では、特定のツールでJavaの1つのインストールを使用することができますが、他のツールでは完全に異なるツールを使用できます。

参考文献

12
slm