JAVA_HOMEはJDKまたはJREを指す必要がありますか?


102

を指さしましJAVA_HOMEC:\Program Files (x86)\Java\jre7。正常に動作します。その後、私はantを解凍し、Antに関連する環境変数を設定しました。入力後に次のエラーメッセージが表示されました"ant -version"

画像

このフォーラムを検索しました。1つの解決策は、JREではなくJavaをJDKにポイントすることです。これが解決策であるかどうかは正確にはわかりません。言い換えると、一般的に、JAVA_HOMEはどちらを指す必要がありますか?JDKまたはJRE?

回答:


121

何らかの開発を行っている場合、またはMavenやAntを使用してビルドしている場合は、javac(Javaコンパイラ)などのユーティリティが存在するJDK(Java開発キット)を指定する必要があります。それ以外の場合は、JRE(Javaランタイム環境)を指定できます。

JDKには、JREが持つすべてのものが含まれています。Javaプログラムを実行しているだけの場合は、JREまたはJDKをポイントできます。


7
したがって、JAVA_HOMEは次の2つのことを行うために使用されます。1:開発ツールの場合、を見つけるjavac.exe。2:非開発ツールの場合、を見つけjava.exeます。これは「1つのツールで1つのツール」に違反しているようですJDK_HOME代わりに使用すべきではありませんか?
パセリエ

4
このサイトの図は、JDKとJREの関係を示しています。docs.oracle.com/javase/8/docs
andrybak

1
JavaパスがJREまたはJDKとして設定されているかどうかをプログラムで検証することは可能ですか?
Dinesh Kumar P

9

単に(jdk1.xxx_xxに変更してください)

JAVA_HOME = C:\ Program Files \ Java \ jdk1.8.0_05


6

私のJAVA_HOMEはJDKを指します。それでも機能しない場合は、Java 6ではなくJava 7用のantをダウンロードしたかどうかを確認してください。


5

一般に、JREとJDKのどちらを指しても問題ありません。それを使用するアプリケーションによって異なります。Antのドキュメントには、Antのすべての機能を取得するためにJDKを指定する必要があると記載されています。


2

開発者としては、JAVA_HOMEをjdkに向けてjavacコピラーなどにアクセスする必要があります。ただし、プログラムをテストしてJREで実行できるかどうかは良いことです。アプリサーバーを使用している場合は、JREの代わりにJDKも必要になることがよくありますが、それは特定のサーバーに依存します。


2

JDKまたはJREのいずれかを使用できますが、次のようになります。

JAVA_HOMEは、ランチャーが使用するJDK / JREを見つけるために使用されます。(一部のタスクにはJavaツールが必要なので、JDKをお勧めします。)
ANT_HOME設定


0

シンプルにしましょう。設定に移動し、「環境変数」を検索します。環境変数ウィンドウがポップアップしたら、JDKのインストールパスが見つかるまで、[新規]をクリックしてから[ディレクトリを参照]をクリックして、新しいシステム変数を作成します。JDKはプログラムファイルにインストールする必要があります。JAVAフォルダーが表示され、フォルダー内にはJDKとJREがあります。コードを記述する場合は、JDKを選択する必要があります!!! JREで十分だと言っている人の言うことを聞かないでください...いいえ!ならない!適切なディレクトリは次のようになりますC:\ Program Files \ Java \ jdk1.8.0_144それはとても簡単です!


2
@Stephan既存の回答には、時間をかけて提供した情報がすでに含まれています。それがあなたの反対投票の正当な理由ですか?これは、これらのスレッドの多くの問題です。まず、基本的な原則が回答されたからといって、回答が適切に構成されていたり、役に立っていたりするわけではありません。私の答えは以前の回答とまったく同じではありません。私が提供した答えには、正確な指示が付いていました
nexogen.io 2018年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.