437

コントロール パネルの [システム] の [環境変数] に移動し、ユーザー変数用とシステム変数用の 2 つの新しい変数を作成しました。どちらも JAVA_HOME という名前で、どちらも次を指していました。

C:\Sun\SDK\jdk\bin

しかし、何らかの理由で、Java コマンドを実行すると以下のエラーが発生します...

BUILD FAILED
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:161: The following error  occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:141: The following error occurred while executing this line:
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish\setup.xml:137: Please set java.home to a JDK installation

Total time: 1 second
C:\Users\Derek\Desktop\eclipse\eclipse\glassfish>lib\ant\bin\ant -f setup.xml
Unable to locate tools.jar. Expected to find it in C:\Program Files\Java\jre6\lib\tools.jar
Buildfile: setup.xml

この問題を解決するにはどうすればよいですか?

4

18 に答える 18

684

JDK インストール ディレクトリの検索

まず、Java Development Kit のインストール パスを知る必要があります。

JDK のデフォルトのインストール パスを開きます。

C:\Program Files\Java

次のようなサブディレクトリが必要です。

C:\Program Files\Java\jdk1.8.0_172

注:最後に /bin なしで jdk へのパスを配置するだけで済みます (多くの場所で提案されているように)。例 C:\Java\jdk1.8.0_172 であり、 C:\Java\jdk1.8.0_172\bin ではありません!


JAVA_HOME 変数の設定

JDK インストール パスを取得したら、次の手順を実行します。

  1. デスクトップの [マイ コンピュータ] アイコンを右クリックし、 [プロパティ] を選択します。
  2. [詳細設定] タブをクリックし、[環境変数] ボタンをクリックします。
  3. [システム変数]で、[新規] をクリックします。
  4. 変数名をJAVA_HOMEとして入力します。
  5. Java Development Kit のインストール パスとして変数値を入力します。
  6. [ OK]をクリックします。
  7. [変更を適用]をクリックします。

注: Windows の再起動が必要になる場合があります

完全な記事は私のブログにあります: Setting JAVA_HOME Variable in Windows .

于 2011-06-29T13:27:14.877 に答える
165

私にとってうまくいったのは%JAVA_HOME%\bin、パス環境変数に、環境変数がフォルダーJAVA_HOMEを指すように追加することでした。jdk

于 2010-06-11T17:04:46.287 に答える
34

cmd で (その cmd ウィンドウに対して一時的に):

set JAVA_HOME="C:\\....\java\jdk1.x.y_zz"

echo %JAVA_HOME%

set PATH=%PATH%;%JAVA_HOME%\bin

echo %PATH%
于 2015-04-02T13:08:36.643 に答える
21

に設定する必要がありますC:\Sun\SDK\jdk(JDK がインストールされている場所であると仮定します - デフォルトではありません) - に \bin を入れないでくださいC:\Sun\SDK\jdk\bin

現在のユーザーとしてログインしているときにのみアプリを実行する場合は、ユーザー変数に入れます。システム上のすべてのユーザーに対して実行する必要がある場合は、システム変数に入れます。

パスにも追加する必要がある場合があります%JAVA_HOME%\bin(また、ユーザーだけから実行するか、システムを含むすべてのユーザーから実行するかによって異なります)

于 2010-04-12T02:55:42.607 に答える
17

http://javahowto.blogspot.com/2006/05/javahome-vs-javahome.html

[コントロール パネル] > [Java]、[Java] タブで、[表示] ボタンをクリックします。ランタイム パラメータに、次のように入力します。

-Djava.home=YOUR_PATH_HERE

または、Java を実行するときに、そのコマンド ライン スイッチをコマンドに追加できます。

java -Djava.home=PATH SomeJavaApp
于 2010-04-12T02:39:52.423 に答える
11

1 つのイメージでこの問題を解決できます。 ここに画像の説明を入力

多くのための

于 2016-02-05T10:00:46.510 に答える
7

まだこの問題に悩まされている人のために (私は上記の提案をすべて試しました) --

64 ビット バージョンの Windows を使用していて、32 ビット JDK をインストールした場合は、変数を調整するだけでなく、レジストリPATH変数も調整する必要がある場合があります。

私は自分の変数を正しく設定し、まだ役に立たず、髪を引っ張っていましたPATHが、レジストリに「空になった」Java エントリしか見つかりませんでした。

Process Monitor私が始めようとしていたプログラムを監視するために使用することで、Java (ランタイム環境) のレジストリで探していた場所を嗅ぎ分け、 32 ビットバージョンのレジストリ エントリを探していることを意気揚々と発見しました。 HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment.

そのキー内で、インストールされているさまざまな Java バージョン (過去および/または現在) のサブキーを見つける必要があります。最新バージョンのサブキーをクリックします (たとえば、私のサブキーは現在 1.7.0_25 です)。そのサブキーをクリックすると、レジストリ文字列の値が右側に表示されます。特にJavaHomeRuntimeLib. これら 2 つの値の値を変更して、現在のフォルダーと jvm.dll ファイルの両方をそれぞれ反映する必要があります。

たとえば、私の場合、値は(以前は)それぞれに設定されC:\Program Files (x86)\Java\jre7C:\Program Files (x86)\Java\jre7\bin\client\jvm.dllおり、マシンには存在しませんでした。これらを と の現在のフォルダーとファイルに更新する必要がC:\Program Files (x86)\Java\jdk1.7.0_25\jreありC:\Program Files (x86)\Java\jdk1.7.0_25\jre\bin\client\jvm.dllました。

繰り返しますが、これは、インストールした Java (JDK および/または JRE) のバージョン (32 ビットまたは 64 ビット) と、使用しているオペレーティング システムのタイプ (32 ビットまたは 64 ビット) の両方に完全に依存します。それらがレジストリ内のさまざまな場所に反映されていることを知っておいてください(Wow6432Node32ビットアプリケーションの場合、私の場合は32ビットJDKが64ビットマシンにインストールされています)。

これら 2 つのレジストリ値を更新したので、プログラムは問題なく動作し、Java ランタイム環境が見つからない (レジストリが原因である) という問題や苦情はなくなりました。

于 2013-06-26T05:47:27.160 に答える
7

これは、www.java.com - hereから Java 環境を設定するための公式のソリューションです。

Windows 7、Windows Vista、Windows XP、Linux/Solaris、およびその他のシェル用のソリューションがあります。


ウィンドウズ7

  1. [スタート] メニューから [コンピュータ] を選択します
  2. コンテキスト メニューから [システム プロパティ] を選択します。
  3. [システムの詳細設定] -> [詳細設定] タブをクリックします。
  4. [環境変数] をクリックし、[システム変数] の下で [PATH] を見つけてクリックします。
  5. 編集ウィンドウで、PATH の値にクラスの場所を追加して、PATH を変更します。アイテム PATH がない場合は、新しい変数を追加し、PATH を名前として追加し、クラスの場所を値として追加することを選択できます。
  6. コマンド プロンプト ウィンドウを再度開き、Java コードを実行します。
于 2012-08-17T04:14:59.390 に答える
6

ここで同じ意味で説明されている 2 つの環境変数を区別する必要があります。1 つはJAVA_HOME変数です。もう 1 つはPath変数です。JAVA_HOME 変数を参照するすべてのプロセスは、JRE ではなく、JDK への検索パスを探します。JAVA_HOME 変数の使用は、Java コンパイラ自体のためのものではありません。コンパイラは自身の位置を認識しています。この変数は、他のソフトウェアがコンパイラをより簡単に見つけられるようにするためのものです。この変数は通常、Java ソース コードからアプリケーションをコンパイルおよびビルドするために IDE ソフトウェアで使用されます。対照的に、Windows CMD インタープリター、および他の多くのファースト パーティおよびサード パーティ ソフトウェアは、JAVA_HOME 変数ではなく Path 変数を参照します。

ユースケース 1: CMD からのコンパイル

たとえば、IDE ソフトウェアを使用しておらず、現在の作業ディレクトリとは無関係に CMD からコンパイルできるようにしたい場合は、Path 変数を正しく設定する必要があります。あなたの場合、 JAVA_HOME 変数さえ必要ありません。CMD は Java コンパイラーを見つけるために JAVA_HOME ではなく Path を使用しているためです。

ユースケース 2: IDE からのコンパイル

ただし、IDE ソフトウェアを使用している場合、まずドキュメントを確認する必要があります。JAVA_HOME を設定する必要がある場合がありますが、同じ目的で別の変数名を使用することもできます。何年にもわたって事実上の標準は JAVA_HOME でしたが、常にそうであるとは限りません。

ユース ケース 3: IDE および CMD からのコンパイル

IDE ソフトウェアに加えて、現在の作業ディレクトリに関係なく CMD からコンパイルできるようにする場合は、JAVA_HOME 変数に加えて、Path 変数に JDK 検索パスを追加する必要がある場合もあります。

JAVA_HOME とパス

問題が Java のコンパイルに関連している場合は、JAVA_HOME 変数とパス (該当する場合) を確認します。問題が Java アプリケーションの実行に関連している場合は、Path 変数を確認する必要があります。

パス変数は、すべてのオペレーティング システムで普遍的に使用されます。これはシステムによって定義され、JRE の検索に使用されるデフォルト変数であるため、Java アプリケーションの実行に問題が生じることはほとんどありません。特に、ソフトウェアインストーラーが通常すべてをセットアップするWindowsではそうではありません。しかし、手動でインストールする場合、おそらく最も安全なのは、JAVA_HOME 変数を完全にスキップして、JDK と JRE の両方のすべてに Path 変数を使用することです。IDEソフトウェアの最近のバージョンは、それを拾って使用できるはずです。

シンボリックリンク

シンボリック リンクは、既存の環境変数の 1 つをピギーバックすることにより、JDK 検索パスを参照するさらに別の方法を提供する場合があります。

以前のバージョンの Oracle/Sun JDK/JRE リリースについてはわかりませんが、少なくとも jdk1.8.0_74 のインストーラーは検索パスC:\ProgramData\Oracle\Java\javapathを Path 変数に追加し、文字列値の先頭に配置します。このディレクトリには、JRE ディレクトリ内の java.exe、javaw.exe、および javaws.exe へのシンボリック リンクが含まれています。

したがって、少なくとも Java 8 JDK では、おそらく Java 8 JRE スタンドアロンでは、JRE に対して環境変数を構成する必要はありません。インストーラーパッケージを使用してセットアップする限り。ただし、Windows のインストールには違いがある場合があります。Oracle JRE は JDK にバンドルされていることに注意してください。

Java JDK 構成が間違ったバージョンのコンパイラを使用していることに気付いた場合、または明示的に定義されていなくても (呪文をキャストせずに) 魔法のように動作しているように見える場合は、環境変数のどこかにシンボリック リンクがある可能性があります。 . したがって、シンボリックリンクを確認することをお勧めします。

于 2016-03-14T09:31:59.653 に答える
5

Mycomputer(この PC) に移動 -> 右クリック -> プロパティを選択 -> システムの詳細設定 -> 環境変数 ->システム変数で[新規] ボタンをクリックし、変数名とパス C:\Program Files\Java\jdk1にJAVA_HOMEを書き込みます。 8.0_131 は jdk が変数値に存在する場合 -> [OK] をクリックします。

JAVA_HOME を設定した後、コマンド プロンプトを閉じて再度開きます。JAVA_HOME を設定する前に開いた cmd に変更が反映されない場合があります。

端末自体から JAVA_HOME を設定することもできます: SET JAVA_HOME="C:\Program Files (x86)\Java\jdk1.8.0_131"

于 2018-01-07T10:08:32.140 に答える
4

エクリプスでは:Window->Preferences->Java->Installed JREs

検索機能を使用して、最新の Java インストールがリストされていることを確認してください。それがチェックされているものであることを確認してください。これは JRE ではなく JDK である必要があります。

于 2011-05-08T01:21:09.380 に答える
3

Eclipseを管理者として実行します。

それは私の問題を解決しました。私はまだその背後にあるロジックを探しています。

于 2010-08-12T12:00:50.250 に答える
2

jdk のインストール後にコンピュータを再起動していない場合は、コンピュータを再起動してください。

Javaを使用する前に移植可能なJavaを作成してパスを設定したい場合は、以下で説明するバッチファイルを作成するだけです。

コンピューターの起動時にこのバッチ ファイルを実行する場合は、バッチ ファイルのショートカットをスタートアップ フォルダーに配置します。Windows 7 のスタートアップ フォルダは「C:\Users\user\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup」です。

次のようなバッチ ファイルを作成します。

set Java_Home=C:\Program Files\Java\jdk1.8.0_11
set PATH=%PATH%;C:\Program Files\Java\jdk1.8.0_11\bin

注: java_homepathは変数です。必要に応じて任意の変数を作成できます。たとえばset amir=good_boy、 amir を表示し%amir%たり、 java_home を表示したりできます%java_home%

于 2016-03-07T08:47:05.330 に答える
0

ここでほとんどのソリューションを回避するために何時間も作業した後、32 ビット JDK をインストールするだけで問題が解決されました。

于 2013-07-16T19:42:43.090 に答える