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:エラー。 「パス」を意味するときに、上記の「クラスパスの最初のエントリ」を書きました。ごめんなさい。
Windowsでは、Java
実行可能ファイルはWindowsレジストリを使用して、実行するJavaのデフォルトバージョンを見つけます。
実行するJava.exe
のコピーは、PATH
環境変数を使用して検出されます。これを変更する手順を実行しない限り、デフォルトではコピーがWindowsディレクトリにあります。このコピーはJavaランタイムディレクトリにないため、レジストリを調べることで見つけます。
そのため、レジストリを変更するか、必要なJavaのバージョンを置く必要がありますbefore WindowsディレクトリをPATH
に置きます。
Windows 8では、C:\ProgramData\Oracle\Java\javapath
ディレクトリを削除できます。
パスから
それは私の問題を解決しました。
私もこの問題を抱えています。 1.6を実行していますが、1.5で作業しているコードをビルドしたいです。 Java_HOME
とPATH
(ユーザーとシステムの両方)を無効に変更しました。
答えは、1.6のインストーラーがJava.exe
、javaw.exe
、およびjavaws.exe
をWindows\System32
フォルダー(Windows 7)にドロップしたことです。
それらのファイルの名前をJava_wrong.exe
、javaw_wrong.exe
、およびjavaws_wrong.exe
に変更することで解決しました。それを行った後にのみ、Java_HOME
およびPATH
で定義されているJavaの正しいバージョンを取得します。ファイルの名前をこのように変更したのは、簡単に元に戻すことができる方法でファイルを削除したからです。
お役に立てれば!
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
ボタンを選択します。
同じ問題がありました。 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の代わりに最初に使用されます。
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と表示されます。
'Path'
変数の私のケースでは、 'C:\ProgramData\Oracle\Java\javapath;
'のようなパラメーターが追加されました。この場所には、Java 8のJava.exe
、javaw.exe
およびjavaws.exe
があり、Oracleのjdk.exe
を介して新しくインストールされました。
私のパスは既に%Java_HOME%\bin
を持っているパスからこのテキストを削除しました。
これで、変数'Java_HOME'
が、私のJavaバージョンを制御しています。
私の場合、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でテスト済み。
Path環境変数を目的のjdk/binディレクトリに設定します
この問題にしばらく苦労し、それについて調査した後、私は最終的に次の手順に従って問題を解決することができました。
1)jdkバージョン12をインストールします
2)システム変数に新しい変数を作成します
3)Java_HOMEという名前を付け、jdkインストールパスを指定します
4)この変数をパスに追加し、先頭に移動します。
5。
最後に、cmdのJavaのデフォルトバージョンを「Java -version」でチェックし、機能しました!
この問題は、おそらくシステムにインストールされているJavaの以前のバージョンが原因です。最初に環境変数を注意深く確認し、以前のバージョンのJavaに関連するすべての環境変数を削除し、それらのパスを置き換えます
C:\Program Files\Java\<your new jdk version>\bin
念のため、Windowsサービスとして.BATファイルを使用している場合は、%Java_HOME%が正しいJavaバージョンを指すように変更した後、Windowsサービスをアンインストールし、再インストールすることをお勧めします。
ここには追加の要素があります。 Javaインストールがそれらを配置するように要求する場所に置くJava実行可能ファイルに加えて、Javaインストーラーはそれらのいくつかのコピーも配置しますWindowsのsystem32ディレクトリにある実行可能ファイル。したがって、Javaのすべての実行可能ファイルが最後にインストールされたものを使用している可能性があります。