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.1
- 回答日時:
どちらのjavaが使われるかは、PATHの順序で決まります。
あるいは
java -version
と打ってversionをみてもよいかもしれません。
>export PATH=${JAVA_HOME}/bin:${PATH}
と前に付け加えているので、
java(j2sdk1.4.2_16)のほうが有効だと思います。
なるほど。
参照されるjava実行ファイルはPATHの設定した順番なのですね。
java -version
したいのですが、最初からOSにインストールされているjavaと自分でインストールしたjavaのバージョンが同一なので確認できなかったのです。
ありがとうございました!
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を参照することがあるので、最初からそう設定したほうがいい」と考えるのがよいかと。
お探しの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ランキング
-
Java 指定されたパスが見つかり...
-
「%CATALINA_HOME%」とはどこの...
-
複数のJDKを同一マシンに共存さ...
-
Eclipseで、プロジェクト名のと...
-
html上で、バッチやexeファイル...
-
Eclipseのアンインストールの仕方
-
Eclipse(JAVA)のデバッグで他...
-
classファイルについて
-
javaクラスファイルをEclipseで...
-
JSPのクラスをコンパイルできな...
-
.jarファイルの中身って書き換...
-
正しいURL指定しているにもかか...
-
マイクラjavaでForgeを入れたい...
-
Eclipse「リフレッシュ」と「ク...
-
Javascriptの値をJava(JSP)へ渡...
-
jasper.exceptionとは?
-
MSDNのコレクションがありませ...
-
vs codeはオフラインでも使用で...
-
SVFの設定について:クラスパス...
-
NoClassDefFoundError: javax/m...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数のJDKを同一マシンに共存さ...
-
Java 指定されたパスが見つかり...
-
JDKのインストールが動作しない...
-
「%CATALINA_HOME%」とはどこの...
-
eclipseについて
-
『javax.mail.*』が見つかりま...
-
コマンドプロンプトでjavaのバ...
-
環境変数JAVA_HOMEとPATHの違い
-
'javac' は、内部コマンドまた...
-
java にてコンパイルできない。
-
eclipseとTomcatについて
-
「javac」と入力するとエラーメ...
-
JAVA環境設定についての質問です。
-
Strutsの設定エラーについて
-
jarについて
-
cygwinでのjavaプログラムの使...
-
Tomcatの設定について教えてく...
-
Javaのクラスライブラリ(?)の場...
-
version について
-
java のバージョンを変える方法
おすすめ情報