アプリ版:「スタンプのみでお礼する」機能のリリースについて

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さえ設定していれば、問題ないような気がするのですが、、。


とても稚拙な質問だと思いますが、良ければアドバイスよろしくお願いします。

A 回答 (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を参照することがあるので、最初からそう設定したほうがいい」と考えるのがよいかと。
    • good
    • 0
この回答へのお礼

ズバリ解答でした!
そこまで解説しているサイトがなかなかなくて、これでスッキリしました。
ありがとうございます。

お礼日時:2008/05/30 14:08

こんにちわ。


JAVA_HOMEは単なる環境変数であり、この環境変数を参照するかどうかは、実行するjavaアプリケーションによって異なります。
ですので、必ずJAVA_HOMEが必要というわけではありません。

あと、実行されるjavaについてですが、water-cooled様の仰です。
    • good
    • 0
この回答へのお礼

tomcatなどが$JAVA_HOMEなどを利用するみたいですね。
ありがとうございました。

お礼日時:2008/05/30 14:09

どちらのjavaが使われるかは、PATHの順序で決まります。


あるいは
java -version
と打ってversionをみてもよいかもしれません。

>export PATH=${JAVA_HOME}/bin:${PATH}
と前に付け加えているので、
java(j2sdk1.4.2_16)のほうが有効だと思います。
    • good
    • 0
この回答へのお礼

なるほど。
参照されるjava実行ファイルはPATHの設定した順番なのですね。
java -version
したいのですが、最初からOSにインストールされているjavaと自分でインストールしたjavaのバージョンが同一なので確認できなかったのです。
ありがとうございました!

お礼日時:2008/05/30 14:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!