Windows 7でjava_homeを設定する方法


422

コントロールパネルの[システム]の[環境変数]に移動して、2つの新しい変数を作成しました。1つはユーザー変数用、もう1つはシステム変数用です。どちらも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

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


3
cmdを閉じて再度開いた?また、JDKではなくJREが指定されているようです。JDKをインストールしましたか?
怒り

私は間違いなくJDKをインストールしましたが、これはjava_homeに設定したC:\ Sun \ SDK \ jdk \ binにあります。
デレク

私も再起動しました.........以来、数回........
Derek

それでもC:\ Program Files \ Java \ jre6 \ lib \を探しているようですcコマンドプロンプトで%JAVA_HOME%をエコーし​​て、何が報告されているかを確認できます
怒り

3
解決策は次の
とおりです。Obin

回答:


673

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の再起動が必要になる場合があります

完全な記事は、私のブログの「WindowsでのJAVA_HOME変数の設定」にあります


121
ありがとう。最後に、(多くの場所で提案されているように)/ binなしでjdkへのパスを最後に置くだけでよいことに気付きました。たとえば、C:\ Java \ jdk1.6.0_31であり、C:\ Java \ jdk1.6.0_31 \ binではありません。
salocinx 2012年

24
この手順を実行するインストーラーの存在を禁止しました:)エンタープライズバージョンからコミュニティバージョンに切り替えたところ、エンタープライズバージョンをワンクリックでインストールしたため、間違ったものをダウンロードしたと確信しました:p
John Humphreys- w00te

6
場合によっては、ウィンドウを再起動するまで、システム変数の変更が有効にならないことがあります。
アンディ

11
より迅速な方法は、[スタート]を
クリックして、

4
/Java/jre*JDKディレクトリではありません。これは、Javaランタイム環境ディレクトリです。クレイジーなハックを実行したくない限り、JDKは別のディレクトリにあります
ericn

157

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


126

最初にシステムにJDKインストールする必要があります。

Javaホームの設定

JAVA_HOME = C:\ Program Files \ Java \ jdk1.7.0 [JDKインストールディレクトリの場所]

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

  • 上のマイコンピュータアイコンを右クリックします
  • プロパティを選択します。
  • 画面左側の[システムの詳細設定]タブをクリックします
  • アドバンスポップアップが開いています。
  • [環境変数]ボタンをクリックします。

ここに画像の説明を入力してください

  • [システム環境変数]で、[新規]をクリックします。
  • 変数名としてJAVA_HOMEを入力します。
  • Java Development Kitのインストールパスとして変数値を入力します。
  • OKをクリックします。
  • 「変更の適用」をクリックします。

システム変数の下にJAVAパスを設定

PATH = C:\ Program Files \ Java \ jdk1.7.0; [セミコロンで値を追加]

ここをチェック


14
JAVA_HOMEに「\ bin」を含める必要がありますか?ここでの他の回答は、PATHには「bin」を含める必要があるが、JAVA_HOMEには含めないように提案しているようです。
devuxer 2013年

72
JAVA_HOMEに\ binを含めないでください。
ラリーシルバーマン

5
[プラスワン]素敵な花!
GingerHead 2017年

しかし、Imageでは\ binで入力します。
NaveenDA 2017年

32

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

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

echo %JAVA_HOME%

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

echo %PATH%

2
そうだね。あなたが使用している場合setx、その後JAVA_HOME、あなたがシャットダウンし、コンピュータを持っていた後、まだ設定されます。その後、再度設定する必要はありません。またbin、必要ありません。
テンジン

はい。ただし、Javaを公式にインストールしたくない場合は、sgrillonが言ったように、そのインスタンスに一時的に設定できます。いっそのこと、あなたは、コマンドプロンプトウィンドウやセットを開くために実行することができますバッチファイルを作成してJAVA_HOMEPATHCLASSPATH、あなたは「ポータブル」Java環境を持つことができます。
Synetech 2015

それは本当ですが、「」はJAVA_HOMEアドレスの設定には必要ありません
Aboozar Rajabi

1
@Aboozar Rajabi、パスにスペース文字が含まれている場合は ""が必要です。
スグリロン

19

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

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

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


17

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

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

-Djava.home=YOUR_PATH_HERE

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

java -Djava.home=PATH SomeJavaApp

コントロールパネルのものは、Javaの商用バージョンにのみ適用されるようです。GPLバージョン用ではありません。
トーマスウェラー


7

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

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

私は自分の髪を抜いて、PATH変数を正しく設定しました-まだ役に立たない-そして、レジストリ内の「空の」Javaエントリのみを見つけました。

Process MonitorJava(ランタイム環境)のレジストリのどこを探しているのかを調べるために、私が始めようとしていたプログラムを監視するために使用することで、32ビットバージョンのレジストリエントリを探していることがわかりました。HKEY_LOCAL_MACHINE\SOFTWARE\**Wow6432Node**\JavaSoft\Java Runtime Environment

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

たとえば、私の場合、値は(以前は)それぞれに設定されてC:\Program Files (x86)\Java\jre7おりC:\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ビット)の両方に完全に依存します。それらがレジストリ内の別の場所に反映されていることを知っているだけです(Wow6432Node 32ビットアプリケーションの場合、私の場合、32ビットJDKが64ビットマシンにインストールされている場合など)。

これら2つのレジストリ値を更新したので、プログラムは問題なく実行され、不足しているJavaランタイム環境(レジストリからのステミング)に関する問題や不満はなくなりました。


1
私は64ビットのWindows 7マシンを使用していて、C:\ Program Files(x86)\ Java \とC:\ Program Files \ Java \の両方を持っています。
voidMainReturn 2013

面白い; x86フォルダーの下にはJavaフォルダーしかありません。
B.クレイシャノン

C:\ Program Files(x86)\ Java \ jdk1.7.0_25 \ jre \ binの下にディレクトリクライアントがありません。C:\ Program Files(x86)\ Java \ jre7 \ binの下にのみ存在します。私は何をすべきか?
Pavol Havlik 2014

Windows 7でキーワード「1.8.0_74」を検索した後、HKEY_LOCAL_MACHINE / SOFTWARE / JavaSoft / Java Development Kit / 1.8.0_74 /または../1.8.0_65と以前にインストールされた他のすべてにregeditを使用して複数のレジストリが見つかりました...最後にインストールした最新のJava 1.8.0_112までレジストリを1つずつ削除した後、YourKit Javaプロファイラ(profiler.exe)がエラーなしで機能するようになりました。「C:\ Program Files \ Java \ jdk1.8.0_74 \ bin \の起動中にエラーが発生しましたjavaw.exe」。
David

7

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

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


Windows 7

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

1
公式の指示は役に立たない。これらは、設定する必要がある値を示すのではなく、環境変数を設定する方法に関する一般的な指示のみを提供します。彼らは単にそれを「クラスの場所」に設定するように言うだけで、これは混乱を招き、無意味です。
Synetech

これらの手順では、一部のプログラムに必要なPATHとはまったく別の変数であるJAVA_HOMEを設定しません。
ジュール

6

Windows 7

  1. エクスプローラー(Internet Explorerではありません)を使用して、コントロールパネル\すべてのコントロールパネルアイテム\ユーザーアカウントに移動ます

    または

    • スタートボタンをクリックします

      開始

    • あなたの写真をクリックしてください

      clickOnPhoto

  2. 環境変数を変更する

    環境変数を変更する

  3. 新着...

    新着

    (システム変数セクションに追加するための十分な権限がない場合は、ユーザー変数セクションに追加します)

  4. JAVA_HOMEを変数名として追加し、JDKの場所を変数値として追加> OK

    システム変数を編集してください

テスト:

  • 新しいコンソール(cmd)を開く
  • タイプ set JAVA_HOME
    • 予想される出力: JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60

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ではなくパスを使用しているためです。

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

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

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

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

JAVA_HOMEとパス

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

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

シンボリックリンク

シンボリックリンクは、既存の環境変数のいずれかを便乗させることによってJDK検索パスを参照するさらに別の方法を提供する場合があります。

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

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

Java JDK構成が間違ったバージョンのコンパイラを使用している、または明示的に定義されていない(魔法を使わずに)魔法で機能しているように見える場合は、環境変数のどこかにシンボリックリンクがある可能性があります。 。そのため、シンボリックリンクを確認する必要がある場合があります。


5

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

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

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


4

Eclipseの場合: Window->Preferences->Java->Installed JREs

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


これらの手順では、Eclipseに関連しないJAVA_HOMEを設定しません。
ジュール

4

PATH変数にJavaディレクトリを追加するときに、その最初に配置したい場合があります。私は、Javaディレクトリをの最後に配置してPATHも機能しないという問題を抱えていました。チェックした後、私はjava.exe私のWindows\System32ディレクトリで見つけました、そしてあなたのPATH中に同じ名前のいくつかのファイルがあるとき、それは最初のものが勝つようです...


インストーラーでJavaをインストールするjava.exejavaw.exe、システムフォルダー内およびシステムフォルダー内のコピーがJRE / JDKからのコピーに置き換えられるため、引き続き機能します。手動でインストールする場合(アーカイブを解凍するだけ)、実際に実行されているコピーに注意する必要があります。
Synetech

これらの手順では、一部のプログラムに必要なPATHとはまったく別の変数であるJAVA_HOMEを設定しません。
ジュール

3

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

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


1
私はこれを正確に理解しているとは言えませんが、おそらくeclipseが実際にここで間違ったエラーメッセージを表示しているだけかもしれません。非管理者として実行すると、.jarファイルなどを削除できず、javacが見つからなかったと誤って報告されます。とにかく、この解決策は私にとってもうまくいきました。
Jess

私の場合のようにWindows Server 2012 R2でEclipseを実行している場合、管理者としてeclipseを実行するとうまくいきます。また、java_homeをプログラム(86)ファイルフォルダーではなく、プログラムファイルフォルダーに設定することも忘れないでください。これが誰かに役立つことを願っています。
ombiro、2015

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_homeおよびpathは変数です。必要に応じて任意の変数を作成できます。たとえばset amir=good_boy、amirを表示し%amir%たり、java_homeを表示したりできます%java_home%


0

ここにあるほとんどのソリューションを何時間も作業した結果、32ビットのJDKをインストールするだけで問題は解決しました。


1
それが必要な場合は問題ありませんが、実際にJavaをインストールせずに手動で「ポータブル」環境を設定することを好む人もいます。その場合、設定する必要がある環境変数を知る必要があります。
Synetech

0

Windows / System32フォルダーで次のファイルを探します。-java.exe-javaw.exe-javaws.exe

パス変数にこれらのファイルが含まれているため、java -versionまたはjavac -versionが古いJAVA_HOMEを指し続ける理由を理解しようとすると頭痛がするかもしれません。たとえば、これらのファイルの名前を変更し、アンダースコアで拡張子を削除します。次に、JAVA_HOME変数を作成し、それをパス変数(たとえば、%JAVA_HOME%)に追加して、「\ bin」パーティクルを追加するだけです。このようにして、JAVA_HOMEを設定するだけで、異なるJREまたはJDKを指すJAVA_HOME変数を変更し、Javaを複数インストールする必要があります。

これはまた、インストーラーなしでJavaを手動でインストールする方が良いので、Javaをいじることができることを意味します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.