web-dev-qa-db-ja.com

CentOSのJava_HOMEの価値は何ですか?

Java CentOSのyumを介してインストールしますが、別のJavaプログラムはJava_HOME環境変数が何であるかを知る必要があります。環境変数の設定についてすべて知っていますが、 Java/usr/bin/Javaにインストールされていますが、そこにはありません!

37
Rory

実際に見つけました

/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/update-alternatives --display Javaと表示され、ディレクトリ/usr/lib/jvm/jre-1.6.0-openjdk.x86_64/bin/Java

54
Rory

よくわかりませんが、通常のRPMSをインストールすると、Java_HOMEの値も次のように設定できます。

/usr/Java/default/

編集:私は私の家のシステムをチェックしました。私はこのファイルを作成しました:

/etc/profile.d/Java.sh

含まれています:

export Java_HOME=/usr/Java/default/

sunの公式バージョンを使用しています:jdk-1.6.0_12-fcs

編集:これが 設定方法Java

Javaをインストールする

ダウンロードしてインストールJava OracleからのJDK

プライマリにする

次の2つのコマンドを使用して、OpenJDKバージョンの代わりにJavaが使用されていることを確認します。

最初

alternatives --install /usr/bin/Java java /usr/Java/default/bin/Java 999999 \
           --slave /usr/bin/keytool keytool /usr/Java/default/bin/keytool \
           --slave /usr/bin/rmiregistry rmiregistry /usr/Java/default/bin/rmiregistry

二番目

alternatives --install /usr/bin/javac javac /usr/Java/default/bin/javac 999999 \
           --slave /usr/bin/jar jar /usr/Java/default/bin/jar \
           --slave /usr/bin/rmic rmic /usr/Java/default/bin/rmic

Java_HOMEを設定する

すべてのユーザーがJava_HOME環境変数を正しい値に設定していることを確認します。

echo "export Java_HOME=/usr/Java/default/" > /etc/profile.d/Java_home.sh
20
Niels Basjes

以下は常に完全に私のために働いています:

[user@base ~]$ locate bin/Java
/usr/bin/Java
/usr/bin/javac
/usr/bin/javadoc
/usr/bin/javaws
/usr/Java/jdk1.6.0_31/bin/Java
/usr/Java/jdk1.6.0_31/bin/javac
/usr/Java/jdk1.6.0_31/bin/javadoc
/usr/Java/jdk1.6.0_31/bin/javah
/usr/Java/jdk1.6.0_31/bin/javap
/usr/Java/jdk1.6.0_31/bin/javaws
/usr/Java/jdk1.6.0_31/jre/bin/Java
/usr/Java/jdk1.6.0_31/jre/bin/Java_vm
/usr/Java/jdk1.6.0_31/jre/bin/javaws

つまり、Java_HOMEを/usr/Java/jdk1.6.0_31として設定できます

2
prashant

次のように、Java_HOMEをJDKまたはJREのルートの場所に設定します。

export Java_HOME=/usr/Java/jdk1.3

JDK(開発キット)がインストールされている場合、ypuはそれを指すようにする必要があります。そうでない場合は、JREパス(Javaランタイム環境)を使用します。次に、$ PATH環境変数を設定して、binディレクトリも含めることができます。

export PATH=$PATH:/usr/Java/jdk1.3/bin

Tomcatを使用している場合は、TomcatユーザーのCATALINA_HOMEも設定する必要がある場合があります。

export CATALINA_HOME=/path/to/Tomcat

これをシステムに設定するには、/ etc/profileを編集するか、/ etc/profile.dフォルダーに.shファイルを追加します。特定のユーザーに対して、ユーザーの〜/ .profileまたは〜/ .bash_profileファイルにそれを置くことができます。

2
Kyle Brandt

Javaで使用されているバージョンを変更した場合の問題を検討しました:

alternatives --config Java

次に、ハードコードされたJava_HOMEが変更されます(少なくとも現在見ているCentos 6.6では変更されます)。つまり、/usr/Javaはありません。

これは最善の方法ではないようです(失敗する可能性があります)が、これに費やした10分間で、それが最善の方法です。

/etc/bashrcでは、設定をJava_HOMEに次のように変更しました。

export Java_HOME=$(alternatives --display Java | grep current | sed 's/link currently points to //' | sed 's|/bin/Java||')

MacOSXでも同様のことを行う必要がありますが、結果を解析するためにgrepsedをすべて使用する必要はありません。確かにalternativesも同様に簡単なソリューションを提供します。

とにかく私は助けてくれたらいいのですが。


更新

いいえ、JRE_HOMEになります。 JDK/SDKはそれほど明白ではありません(今後も検討します)。

alternativesは、デフォルトではJREについてのみのようです。 @Nielsの回答に従うか、Java with yumをインストールして、Java_HOMEをそれに設定します(トリックは、インストールされた場所を見つけたところです!)。

yum install Java-1.8.0-openjdk-devel.x86_64
cd /usr/lib/jvm 

Java_1.8.0/etc/alternatives/Java_sdk_1.8.0へのシンボリックリンクであることに気付いたので、$ Java_HOMEを/usr/lib/jvm/Java_1.8.0に設定します。 /etc/bashrc

1
HankCa

re:Centos7、/ etc/Java/java.confファイルを参照してください。

その中のJava_HOMEは、次のディレクトリにあることが示されています。/ usr/lib/jvm/Java

私がチェックしたところ、それは私がyum経由でロードしたjdkの正しいバージョンなので、...

私の環境にはデフォルトでJava_HOMEが設定されていないため、.bash_profileに設定します

0
theRiley

パッケージマネージャーはさまざまな場所に配置できるので、whichを使用します(コンテナーを使用する場合は、これを明示的にインストールする必要があります)。

javaCompiler=$(which javac)
javaBin=$(dirname $(readlink -f $javaCompiler))
javaHome=${javaBin%/*}
export Java_HOME=$javaHome

またはJREの場合

javaExec=$(which Java)
javaBin=$(dirname $(readlink -f $javaExec))
javaHome=${javaBin%/*}
export JRE_HOME=$javaHome
0
Jules Clements

奇妙なことに、JAVE_HOME環境変数を使用することの要点は、各プログラムへのパスを指定する必要がないため、この変数を探すことでこのパスを取得できることです。

いずれにせよ、Java_HOMEの環境変数を見つける正しい方法は、echoを使用することです。

[root@Host ~]# echo $Java_HOME
/usr/Java/j2sdk1.4.2_09

このコマンドを実行すると、実行しているバージョンに関係なく、コマンドラインからパスが表示されます。

0
Dave Drager