- ベストアンサー
環境変数JAVA_HOMEとPATHの違い
JAVAをはじめて間もない初心者です。 ふと疑問に思ったことがあるので、質問させていただきます。 先日、自宅サーバ(CentOS4.6)にjava(j2sdk1.4.2_16)をインストールしたのですが、OSに元々javaがインストールされていました。 SHELL># whereis java と打つと[java: /usr/bin/java]と出てきて、実際/usr/bin以下にjavaの実行ファイルがあります。 自分でインストールしたjavaは /usr/loacl/j2sdk1.4.2_16というディレクトリを作成してその下に展開しています。 システムの環境変数に自分でインストールしたjavaを指定しようと SHELL># export JAVA_HOME=/usr/local/j2sdk1.4.2_16 SHELL># export PATH=${JAVA_HOME}/bin:${PATH} と設定したのですが、 $PATHには/usr/binも設定されています。 javaを実行した場合は、どちらのjava実行ファイルが参照されるのでしょうか? (OSに元からインストールされているjava[/usr/bin/java]なのか、自分でインストールしたjava[/usr/local/j2sdk1.4.2_16/bin/java]なのか) そもそも、JAVA_HOMEは何のために設定するのでしょう?googleなどで「JAVA_HOMEとは」などと調べたのですが、イマイチ僕の欲しい答えが出てきません。 javaへのPATHさえ設定していれば、問題ないような気がするのですが、、。 とても稚拙な質問だと思いますが、良ければアドバイスよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
>javaへのPATHさえ設定していれば、問題ないような気がするのですが Javaを使うだけなら、問題ないですよ。 JAVA_HOMEを設定するようになったのは、サーバサイドJavaが広まるのにあわせて、かな。サーバサイドJavaの学習では、必ずといっていいほど、Tomcatサーバが使われる。で、このTomcatが、JDKのホームディレクトリとしてJAVA_HOMEを参照するように作られている、というわけ。 で、最初はPATHに直接JDKのディレクトリを入れていて、Tomcatを使うようになってからJAVA_HOMEを設定したりしてたんだけど、「それなら、JDKのホームはJAVA_HOMEにして、PATHなんかは全部JAVA_HOMEを使って指定するようにしたほうが面倒がないや」ってことで、多くの入門などで、最初からJAVA_HOMEにJDKのホームディレクトリを指定するように説明するようになった、というわけ。(今は、Tomcat以外にもJAVA_HOMEを見るものはあるかも) だから、「Javaを利用する上で重要なプログラムがJAVA_HOMEを参照することがあるので、最初からそう設定したほうがいい」と考えるのがよいかと。
その他の回答 (2)
- chomakichi
- ベストアンサー率57% (22/38)
こんにちわ。 JAVA_HOMEは単なる環境変数であり、この環境変数を参照するかどうかは、実行するjavaアプリケーションによって異なります。 ですので、必ずJAVA_HOMEが必要というわけではありません。 あと、実行されるjavaについてですが、water-cooled様の仰です。
お礼
tomcatなどが$JAVA_HOMEなどを利用するみたいですね。 ありがとうございました。
- water-cooled
- ベストアンサー率14% (76/538)
どちらのjavaが使われるかは、PATHの順序で決まります。 あるいは java -version と打ってversionをみてもよいかもしれません。 >export PATH=${JAVA_HOME}/bin:${PATH} と前に付け加えているので、 java(j2sdk1.4.2_16)のほうが有効だと思います。
お礼
なるほど。 参照されるjava実行ファイルはPATHの設定した順番なのですね。 java -version したいのですが、最初からOSにインストールされているjavaと自分でインストールしたjavaのバージョンが同一なので確認できなかったのです。 ありがとうございました!
お礼
ズバリ解答でした! そこまで解説しているサイトがなかなかなくて、これでスッキリしました。 ありがとうございます。