Windows 8のJDK 8u25を使用していますが、Javaインストールで問題が発生しています。 javac
を実行しても問題ありませんが、Java
を実行するとこのエラーメッセージが生成されます。
The system cannot find the file C:\ProgramData\Oracle\Java\javapath\Java.exe
どうすれば修正できますか?
問題は環境変数に関係していると思います。
私が設定した重要な変数は次のとおりです。
Java_HOME
– C:\Program Files\Java\jdk1.8.0_25
CLASSPATH
– .;%Java_HOME%\lib
PATH
– <other paths omitted>;%Java_HOME%\bin
また、cmdのset
で表示される展開は次のとおりです。
Java_HOME
– C:\Program Files\Java\jdk1.8.0_25
CLASSPATH
– .;C:\Program Files\Java\jdk1.8.0_25\lib;%CLASSPATH%;
PATH
– C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.6.0_45\bin;<other paths omitted>;C:\Program Files\Java\jdk1.8.0_25\bin
set
の完全な出力は here で表示できます。
現在、解決に取り組んでいる同様の問題があります。他のソフトウェア(Eclipse Lunaの場合)に問題がある可能性があるため、これでエラーが解決するとは言えません。
Javaは、PATH変数で指定されたパスを使用しています。つまり、
C:\ProgramData\Oracle\Java\javapath
このフォルダーに移動し(ProgramDataは非表示になっているため、必要に応じて再表示します)、Java.exeシンボリックリンクを右クリックします。 [ターゲット]フィールドに、Java.exeを探している場所が表示されます。以前のjdk1.6.0_45インストールのJava.exeファイルを指している可能性があります。ここに新しいショートカットを貼り付けるか、他の人が述べたようにPATH設定を変更します。
少なくとも1.8から1.7に移行するとき、Javaインストーラーがjavapathを変更したり、システムパスを更新したりしないことがわかりました。私の場合、ショートカットを変更しても、起動時にEclipseで問題が発生するだけでした。
編集:----- javapathフォルダーのショートカットで遊んだ後、少なくともEclipseの場合はシンボリックリンクが必要であることがわかりました。 Windowsでディレクトリシンボリックリンクを作成する方法 を参照してください。
ファイルシンボリックリンクに/ dスイッチは必要ありませんが、
mklink Java.exe "C:\Program Files\Java\jdk1.8.0_20\bin\Java.exe"
mklink javaw.exe "C:\Program Files\Java\jdk1.8.0_20\bin\javaw.exe"
mklink javaws.exe "C:\Program Files\Java\jdk1.8.0_20\bin\javaws.exe"
これは今私のために動作します。
OracleがJavaを指すのにこんなに貧弱な方法をとったのは、私を超えています。 JDKへの新しいリンクを作成して、この問題を解決しました
mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\jdk1.8.0_40\bin\"
必要なものがそれだけであれば、JREでも同じことが機能します。
これは、C:\ProgramData\Oracle\Java\javapath
の古いシンボリックリンクを置き換えます(以前に存在した場合)
私はPATH
にいました:
C:\ProgramData\Oracle\Java\javapath;C:\Program Files\Java\jdk1.8.0_92\bin;<others omitted>
私は削除しました:
C:\ProgramData\Oracle\Java\javapath;
そしてそれは私のために問題を修正しました。 Java -version
はJavaバージョンなどの詳細を提供するようになりました。
これにより、Javaおよび環境変数に関連するすべての問題が解決されます。
次のようなエントリを削除します。
C:\ProgramData\Oracle\Java\javapath
JDK/JREのbin
フォルダーのパスを追加します。
PATH環境変数の更新
PATH変数を設定しない場合、実行するたびに実行可能ファイルへのフルパスを指定する必要があります。
C:\> "C:\Program Files\Java\jdk1.8.0\bin\javac" MyClass.Java
PATH変数を永続的に設定すると、再起動後も持続するので便利です。
PATH変数を永続的に設定するには、jdk1.8.0\binディレクトリの完全パスをPATH変数に追加します。通常、このフルパスは次のようになりますC:\Program Files\Java\jdk1.8.0\bin
。
Microsoft WindowsでPATH変数を次のように設定します
JDKインストールのbinフォルダーの場所をシステム変数のPATH変数に追加します。
以下は、PATH変数の典型的な値です。
C:\ WINDOWS\system32; C:\ WINDOWS; C:\ Program Files\Java\jdk1.8.0\bin
注:
PATH環境変数は、セミコロン(;)で区切られた一連のディレクトリであり、大文字と小文字は区別されません。 Microsoft Windowsは、PATHディレクトリで左から右の順にプログラムを探します。
一度に1つのパスにJDKのbinディレクトリを1つだけ持つ必要があります。最初のインスタンスに続くものは無視されます。
JDKパスを追加する場所がわからない場合は、追加します。
新しいパスは、PATH変数を設定した後に開く各新しいコマンドウィンドウで有効になります。
C:\ProgramData\Oracle\Java
を検索し、そのディレクトリとその中に含まれるすべてのファイルを削除します。これはrmdir /S C:\ProgramData\Oracle\Java
を使用してコマンドラインから実行できますrmdir /S C:\ProgramData\Oracle
を使用してこれを行うことができますJDKをインストールし、パスを設定します。
プログラムを実行します。同じ問題はもう見つかりません。
この問題は、jdkが自動的にアップグレードされないため、あるバージョンから別のバージョンにアップグレードするときに発生します。
同じために、環境変数を変更できます。システム変数でPATHを探し、jdk binの場所を文字列の前(後ろではなく)に追加します。 「Java」および「javac」が機能する場合、CMDでチェックインを完了します。動作する場合は、再度システム変数に移動します。 add "CLASSPATH"変数と設定値 "。c:\ Program Files\Java\jdk1.8.0_91\lib;"
グループポリシーでかなり制限されている企業のPCを使用している場合、これは機能する可能性があります。
仮定して
PATH
にはC:\ProgramData\Oracle\Java\javapath
が含まれますC:\Program Files\Java\jdk1.8.0_60\bin
にJDKがインストールされている次に、次のテキストファイルmklink.bat
を作成し、デスクトップに配置します。
rem mklink.bat
mklink /d C:\ProgramData\Oracle\Java\javapath "C:\Program Files\Java\jdk1.8.0_60\bin"
pause
ここで右クリックして、「管理者として実行」を選択します。管理者の資格情報を提供します。スクリプトは成功を報告するはずです。これで、Javaをコンパイルまたは実行できます。
PATH VARIABLE
jdk1.6.0_45
およびjdk1.8.0_25
には2つのバージョンのjdkがあります。すなわち、最初のものを削除してみてください。 PATH
からのjdk1.6.0_45
これは通常、Javaを更新するときに発生します。これを解決する最も簡単な方法は、JDKをアンインストールしてから再インストールすることです。注:これはパスまたはクラスパスを削除しないため、心配する必要はありません。
心配しないで。 jdkおよびjdkの更新をアンインストールするだけ以下を設定します、
Java_HOME
CLASSPATH
PATH
JRE_HOME ( is optional)
Path変数から「C:\ ProgramData\Oracle\Java\javapath\Java.exe」を削除し、jdk binパスを追加してください。それが動作します。
私の場合、上記のパスを削除し、「C:\ Program Files\Java\jdk1.8.0_221\bin」であるJDKパスを追加しました
c:\ProgramData\Java\javapath
はシンボリックリンクに使用されます。もちろん、Java Pathに%PATH%
へのフルパスを追加できますが、上記の場所へのパスへのシンボリックリンクを作成することもできます。
CMD
を管理者として開きます。mklink Java.exe
(Java.exeへのフルパス)例mklink Java.exe "C:\Program Files\Java\jdk1.8.0_25\bin\Java.exe"
許可されていないアカウントからJava8をインストールした後も同じ結果になりました。修正するには、単に管理者ユーザーアカウントから再インストールしました。これにより、Java exeへのファイルリンクを含む引用符付きディレクトリが作成されました。
また、JDK 1.8をアンインストールする必要があり、jdk 1.7が必要になるという同様の問題がありました。私がやったことは、javapathからシンボリックリンクを削除してから、Java、javaw、javawsのショートカットをbinディレクトリからjavapathフォルダにインポートしました。ただし、エンタープライズラップトップで、このディレクトリを変更/更新する権限を持っていない権限の問題がいくつか見つかりました。管理者から適切な許可を与え、そこで解決しました。
Java JavaPathフォルダーの新しいバージョンの場所
64ビットOS
"C:\Program Files (x86)\Common Files\Oracle\Java\javapath\"
X86
"C:\Program Files\Common Files\Oracle\Java\javapath\"
2つ以上のPATH変数が必要です。セミコロン(;)を使用して、それらすべてを1つにマージしてみてください