質問: 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さえ設定していれば、問題ないような気がするのですが、、。 とても稚拙な質問だと思いますが、良ければアドバイスよろしくお願いします。
回答: >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を参照することがあるので、最初からそう設定したほうがいい」と考えるのがよいかと。