web-dev-qa-db-ja.com

WindowsはJava_HOMEを無視します:JDKをデフォルトとして設定する方法は?

JREの代わりにJDKを使用するようにWindowsを説得するにはどうすればよいですか?

この質問は以前、ここ、そして他の場所で尋ねられました:

デフォルトのJava installation/runtime(Windows)の設定方法

問題は、WindowsがJava_HOMEを無視し、JDK binディレクトリをパスの最初のエントリにしたという事実も無視することです。

コマンドラインからJava -versionを実行すると、JDK 1.6のインストールを呼び出す代わりに、1.7 JREが実行されます。

私の推測では、これは1.7に固有の問題であり、Windows 7はレジストリですべきでないことを行っています。

これを修正する方法についてのアイデアはありますか?

Edit:エラー。 「パス」を意味するときに、上記の「クラスパスの最初のエントリ」を書きました。ごめんなさい。

77
ccleve

Windowsでは、Java実行可能ファイルはWindowsレジストリを使用して、実行するJavaのデフォルトバージョンを見つけます。

実行するJava.exeのコピーは、PATH環境変数を使用して検出されます。これを変更する手順を実行しない限り、デフォルトではコピーがWindowsディレクトリにあります。このコピーはJavaランタイムディレクトリにないため、レジストリを調べることで見つけます。

そのため、レジストリを変更するか、必要なJavaのバージョンを置く必要がありますbefore WindowsディレクトリをPATHに置きます。

122
erickson

Windows 8では、C:\ProgramData\Oracle\Java\javapathディレクトリを削除できます。

パスから

それは私の問題を解決しました。

23
Arun

私もこの問題を抱えています。 1.6を実行していますが、1.5で作業しているコードをビルドしたいです。 Java_HOMEPATH(ユーザーとシステムの両方)を無効に変更しました。

答えは、1.6のインストーラーがJava.exejavaw.exe、およびjavaws.exeWindows\System32フォルダー(Windows 7)にドロップしたことです。

それらのファイルの名前をJava_wrong.exejavaw_wrong.exe、およびjavaws_wrong.exeに変更することで解決しました。それを行った後にのみ、Java_HOMEおよびPATHで定義されているJavaの正しいバージョンを取得します。ファイルの名前をこのように変更したのは、簡単に元に戻すことができる方法でファイルを削除したからです。

お役に立てれば!

21
Inversus

Windowsは何も無視しません。これはセットアップの問題です。 Windowsはユーザーが提供したものを使用します。 Java_HOMEに関する特別な知識はありません。

CLASSPATHもWindowsとは関係ありません。 Windowsにとっては、フォルダーの場所に展開されるのは環境変数だけです。

%PATH%環境変数を確認してください。それが、Windowsが次々と見つけている理由です。パス(リンク先の投稿)が%Java_HOME%\bin;<remainder of path>を指している必要があります。繰り返しますが、リンクした投稿は、バッチファイルを使用してこれを設定する方法を提供しました。

(これを知らない人のために:%PATH%を調べる最も簡単な方法は、コマンドプロンプトを開いてecho %PATH%と入力することです。スタートの右ペインでComputerを右クリックしてそこにアクセスすることもできます。メニューを選択し、Propertiesを選択してから、Advanced System Settings、tne Environmental Variablesボタンを選択します。

12
Ken White

同じ問題がありました。 Javaバージョンがインストールされており、何らかの理由でJava 1.6の代わりにJava 1.7が使用されていますが、1.6を使用するパスで指定しました。 (C:\ jdk1.6.0_45_32\bin)。

Windowsが1.7ではなく1.6を使用するように、使用したいJDKのパス(1.6)をPATH環境変数の最初のエントリに移動する必要がありました。

したがって、たとえば、以前のPATH環境変数は次のとおりでした。

C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin;C:\jdk1.6.0_45_32\bin

そして、jdkを最初に移動した後、うまくいきました:

C:\jdk1.6.0_45_32\bin;C:\Program Files (x86);...<other entries>;C:\dev\ant181\bin

Java 1.7のWindowsインストーラーは、既にPATHにある他のディレクトリにインストールしたため、指定されたカスタムPATHエントリC:\ jdk1.6.0_45_32\binの代わりに最初に使用されます。

6

enter image description here JDK 8の後にJDK 10をインストールし、システム環境変数に「C:\ ProgramData\Oracle\Java\javapath」などのパスを設定し、このパスでJavaバージョン管理を設定したとします。ここで設定されたjdk 1.8パスであってもJava_HOMEを無視します。したがって、Java_HOMEパスの効果を得るために、パスの「C:\ ProgramData\Oracle\Java\javapath」を削除します。

2
Samir 007

Java 7および8がインストールされていて、Java 7にリダイレクトしたいが、cmdプロンプトウィンドウのJavaバージョンにJavaが表示される8。
Java 7 binディレクトリパス(C:\ Program Files\Java\jdk1.7.0_10\bin)を最後にPATH変数に追加しましたが、追加しませんでしたうまくいき、Java 8が表示されるので、Java 7パスをパス値の開始点に変更し、機能しました。
新しいcmdプロンプトウィンドウを開き、Javaバージョンを確認すると、Java 7と表示されます。

2
mannedear

'Path'変数の私のケースでは、 'C:\ProgramData\Oracle\Java\javapath;'のようなパラメーターが追加されました。この場所には、Java 8のJava.exejavaw.exeおよびjavaws.exeがあり、Oracleのjdk.exeを介して新しくインストールされました。

私のパスは既に%Java_HOME%\binを持っているパスからこのテキストを削除しました。

これで、変数'Java_HOME'が、私のJavaバージョンを制御しています。

2

私の場合、Java 7および8(両方ともx64)がインストールされていて、Java 7にリダイレクトしたいが、すべてがJava 8を使用するように設定されているJavaはPATH環境変数を使用します。

C:\ ProgramData\Oracle\Java\javapath

そのフォルダーランタイムを検索する最初のオプションとして(隠しフォルダーです)。このパスには、編集できない3つのシンボリックリンクが含まれています。

私のPCでは、PATH環境変数は次のようになっています。

C:\ ProgramData\Oracle\Java\javapath; C:\ Windows\System32; C:\ Program Files\Java\jdk1.7.0_21\bin;

私の場合、次のようになります。

C:\ Windows\System32; C:\ Program Files\Java\jdk1.7.0_21\bin;

Javaがシンボリックリンクを見つけられないようにカットアンドペーストする必要があり、後で復元することができます。

Java_HOMEおよびJRE_HOME環境変数を目的のJavaフォルダーのランタイム(私の場合はJava 7)に設定した後、コマンドJava -versionに目的のJavaランタイム。レジストリをいじる必要はないと私は言います。

Win7 x64でテスト済み。

1
Broken_Window

Path環境変数を目的のjdk/binディレクトリに設定します

1
David Levin

この問題にしばらく苦労し、それについて調査した後、私は最終的に次の手順に従って問題を解決することができました。

1)jdkバージョン12をインストールします
2)システム変数に新しい変数を作成します
3)Java_HOMEという名前を付け、jdkインストールパスを指定します
4)この変数をパスに追加し、先頭に移動します。
5。

最後に、cmdのJavaのデフォルトバージョンを「Java -version」でチェックし、機能しました!

0
Rodrigo Araujo

この問題は、おそらくシステムにインストールされているJavaの以前のバージョンが原因です。最初に環境変数を注意深く確認し、以前のバージョンのJavaに関連するすべての環境変数を削除し、それらのパスを置き換えます

C:\Program Files\Java\<your new jdk version>\bin
0
Tanay Toshniwal

念のため、Windowsサービスとして.BATファイルを使用している場合は、%Java_HOME%が正しいJavaバージョンを指すように変更した後、Windowsサービスをアンインストールし、再インストールすることをお勧めします。

0
Aurun

ここには追加の要素があります。 Javaインストールがそれらを配置するように要求する場所に置くJava実行可能ファイルに加えて、Javaインストーラーはそれらのいくつかのコピーも配置しますWindowsのsystem32ディレクトリにある実行可能ファイル。したがって、Javaのすべての実行可能ファイルが最後にインストールされたものを使用している可能性があります。

0
Ben Brammer