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さえ設定していれば、問題ないような気がするのですが、、。
とても稚拙な質問だと思いますが、良ければアドバイスよろしくお願いします。
No.2ベストアンサー
- 回答日時:
>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を参照することがあるので、最初からそう設定したほうがいい」と考えるのがよいかと。
No.3
- 回答日時:
こんにちわ。
JAVA_HOMEは単なる環境変数であり、この環境変数を参照するかどうかは、実行するjavaアプリケーションによって異なります。
ですので、必ずJAVA_HOMEが必要というわけではありません。
あと、実行されるjavaについてですが、water-cooled様の仰です。
No.1
- 回答日時:
どちらのjavaが使われるかは、PATHの順序で決まります。
あるいは
java -version
と打ってversionをみてもよいかもしれません。
>export PATH=${JAVA_HOME}/bin:${PATH}
と前に付け加えているので、
java(j2sdk1.4.2_16)のほうが有効だと思います。
なるほど。
参照されるjava実行ファイルはPATHの設定した順番なのですね。
java -version
したいのですが、最初からOSにインストールされているjavaと自分でインストールしたjavaのバージョンが同一なので確認できなかったのです。
ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux cronの@rebootでのdateコマンドの実行につきまして 2 2023/06/11 16:23
- UNIX・Linux ubuntuのサーバー(virtual box)が、再起動するとデータが消えてしまいます。 4 2022/04/27 21:29
- Java マイクラjavaでForgeを入れたいのですが、インストールした.jarファイルが展開されてしまい中 1 2023/07/28 22:30
- その他(ゲーム) マインクラフトJAVA版の導入・ローカルマルチプレイについて 1 2022/03/23 18:59
- Java mac mini 2009 でのmac OS における Java の入れ替えについて 1 2022/12/27 19:23
- Java jdk17.06のインストーラーが起動しない 1 2023/03/27 21:58
- Java JavaでWebページ作成 7 2023/07/21 21:09
- UNIX・Linux postfix smtpサーバーリレーがTLSハンドシェーク失敗 1 2022/08/15 15:45
- C言語・C++・C# C#の基本文法が詳しく書かれている教科書的な本ありますか 2 2023/02/11 03:48
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JDKのインストールが動作しない...
-
java にてコンパイルできない。
-
'javac' は、内部コマンドまた...
-
java初心者なのですが、コマン...
-
「%CATALINA_HOME%」とはどこの...
-
Java 指定されたパスが見つかり...
-
環境変数JAVA_HOMEとPATHの違い
-
複数のJDKを同一マシンに共存さ...
-
Eclipseのアンインストールの仕方
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
シンボルが見つかりませんとい...
-
split関数で区切り文字がない場合
-
vs codeはオフラインでも使用で...
-
classファイルについて
-
Eclipse(JAVA)のデバッグで他...
-
JAVAにのeclipseに関する質問で...
-
マイクラjavaでForgeを入れたい...
-
コンパイル時にエラーが出てし...
-
earファイルを展開する方法
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のJDKを同一マシンに共存さ...
-
Java 指定されたパスが見つかり...
-
JDKのインストールが動作しない...
-
「%CATALINA_HOME%」とはどこの...
-
コマンドプロンプトでjavaのバ...
-
Javaの環境設定(JAVA_HOME, cl...
-
環境変数JAVA_HOMEとPATHの違い
-
『javax.mail.*』が見つかりま...
-
'javac' は、内部コマンドまた...
-
JAVAC 出来ない??
-
JAVAのJDK6/7の切り替え
-
eclipseについて
-
Windowsの環境にJOGLをインスト...
-
Javaのクラスライブラリ(?)の場...
-
Strutsの設定エラーについて
-
JDKのインストールが開始できない
-
javacでコンパイルができない!
-
JAVAのコンパイルができません
-
TomcatとJDKについて
-
JDK1.6(Windows版) jar/javacコ...
おすすめ情報