Javaアプリケーションを実行しようとしていますが、次のエラーが発生します。
Javacコンパイラが見つかりません。 com.Sun.tools.javac.Mainがクラスパス上にありません。おそらくJava_HOMEがJDKを指していない
私は多くのSO質問を通過しましたが、解決策は次のとおりですJava_HOMEはJREではなくJDKを指す必要があります。
次に、コマンドプロンプトでJava_HOMEを印刷しようとしましたが、
私はこのJava_HOMEを私のコンピュータから設定しました->プロパティ->環境変数->システム変数以下のように、
私はまた、設定を使用してEclipseに新しい変数を追加しました、
そして最後に、私はまだ同じエラーが発生します。 Java_HOMEの何が問題になっていますか?
更新:
Eclipse-preferences-installed jres
存在するエントリは1つだけで、これはjdkで選択されています。
そしてproject properties
Java build path
-libraries
ありますJRE System Liberary [jdk1.8.0_31]
使用されている。
アップデート1:
C:\Program Files\Java\jdk1.8.0_31
にはjre
という名前のフォルダーがあります。そのjre
フォルダがこの問題の原因ですか?このフォルダを削除できますか?プロジェクトにjdkライブラリのみを追加する方法はありますか?
EclipseはIDEであり、したがって(少なくとも)2つのJavaバージョン:実行するためにそれ自体を使用するバージョン(Java_HOME
)と、アプリケーションの実行に使用するJVM。2つが同じである必要はありません。
したがって、問題を修正するには、Eclipseの設定、特にInstalled JREs
を調べる必要があります。これにより、Java Eclipseが実行に使用するVMのリストが表示されますJavaプロジェクトからのコード。私の推測では、そこにはいくつかのエントリがあり、デフォルトはJDKではなくJREです。
リストにJDKがあることを確認してから、プロジェクトに移動します。プロジェクトでは、Java Build Path
-> Libraries
で使用するJava VMを選択します。
[編集]最後のスクリーンショットをよく見てください:C:\Program Files\Java\jdk1.8.0_31\jre
を使用するようにEclipseを設定しました。これは、JDK内のJREにポイントしたことを意味します。代わりにC:\Program Files\Java\jdk1.8.0_31
を使用してください(末尾の\jre
なし)。
[[編集2]jre
フォルダを削除すると、Javaは機能しなくなります。すべてのJDKにはJREも含まれています。JREにはrt.jar
with String.class
など。Javaコンパイラは、JDKのtools.jar
にあります。
EclipseでJREエントリを再作成しても問題が解決しない場合は、クラスパスに手動で追加する必要があります。
変数(「変数の追加...」)を使用して、新規または異なるJREに切り替えるときにEclipseがパスを更新するようにできます。拡張子Java_HOME
を付けてlib/tools.jar
を試してください