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


37

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

回答:


54

実際に見つけました、

それ/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


20

よくわかりませんが、通常の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をインストールする

OracleからJava 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

おもしろい。:)
ロリー

1
/usr/java/defaultOpenJDK 1.6および1.7がインストールされたCentOS 6ボックスにはありません。
ダニエルセロディオ

@DanielSerodio正しい。「OracleからJava JDKをダウンロードしてインストールする」と明確に説明しましたが、その後は存在します。
ニールズバスジェス2013年

2

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

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

[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として設定できることを意味します


1

使用されている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をインストールし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


0

奇妙なことに、JAVE_HOME環境変数を持つことの全体的なポイントは、各プログラムへのパスを指定する必要がないため、この変数を探すことでこのパスを取得できることです。

いずれにしても、JAVA_HOMEの環境変数を見つける正しい方法はechoを使用することです:

[root@host ~]# echo $JAVA_HOME
/usr/java/j2sdk1.4.2_09

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


2
変数は設定されていませんでした。
ロリー

0

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

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

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

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


0

パッケージマネージャーはさまざまな場所に配置できることがわかったので、これを使用する(コンテナーを使用する場合は明示的にインストールする必要があります)、以下の方が少し脆弱です

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