[解決済み] javac コンパイラが見つからない com.sun.tools.javac.Main is not on classpath エラー
質問
Javaアプリケーションを実行しようとしているのですが、以下のエラーが発生します。
com.sun.tools.javac.Main がコンパイラに含まれていないため、javacコンパイラを見つけることができません。 クラスパス 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
このリストには、EclipseがプロジェクトのJavaコードを実行するために使用するJava VMのリストが表示されます。私の推測では、そこにはいくつかのエントリーがあり、デフォルトではJDKではなくJREになっているはずです。
リストにJDKがあることを確認してから、プロジェクトに移動してください。プロジェクトでは、どのJava VMを使用するか、以下の項目で選択できます。
Java Build Path
->
Libraries
.
[EDIT】をご覧ください。]
最後のスクリーンショットをよく見てください。あなたは、Eclipseが
C:\Program Files\Java\jdk1.8.0_31\jre
これは、JDKの中のJREを指していることを意味します。使用方法
C:\Program Files\Java\jdk1.8.0_31
代わりに
\jre
を末尾につける)。
[EDIT 2】です。]
を削除すると
jre
フォルダーを削除すると、Java は動作しなくなります。どんなJDKにも、JREが含まれています。JREには
rt.jar
と
String.class
などがあります。Javaコンパイラは
tools.jar
は、JDKの中にある。
EclipseでJREのエントリーを再作成してもうまくいかない場合は、クラスパスに手動で追加する必要があります。
変数 ("Add Variable...") を使用すると、新しい/異なる JRE に切り替えたときに Eclipse が確実にパスを更新するようにすることができます。試す
JAVA_HOME
という拡張子を持つ
lib/tools.jar
関連
-
[解決済み】"実引数リストと形式引数リストの長さが異なる"
-
[解決済み】不正な反射的アクセスとは?
-
[解決済み】指定された子にはすでに親がいます。先に子の親に対してremoveView()を呼び出す必要がある(Android)
-
[解決済み】java 'jar'が内部コマンドまたは外部コマンドとして認識されない。
-
[解決済み] テスト
-
[解決済み】Ubuntu: OpenJDK 8 - パッケージを見つけることができません。
-
[解決済み】予期しない型エラー
-
[解決済み] Eclipseでクラスパスコンテナを解除する
-
[解決済み] Could not find or load main class "とはどういう意味ですか?
-
[解決済み】UbuntuにJava 7をインストールする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] java.sql.SQLException: ユーザー 'root'@'localhost' (using password: YES) のためのアクセスが拒否されました。
-
[解決済み】エラー:配列または java.lang.Iterable のインスタンスに対してのみ反復処理を行うことができます。
-
[解決済み】javaで指定されたファイルが見つからない
-
[解決済み】StringUtils.isBlank() vs String.isEmpty()
-
[解決済み】Android Studioでタスク :app:compileDebugJavaWithJavac の実行に失敗しました。
-
[解決済み】Javaクラスの "型に解決できない"
-
[解決済み】Javaで無限大を実装する方法とは?
-
[解決済み】なぜjava.io.Fileにはcloseメソッドがないのでしょうか?
-
[解決済み】intがnullであるかどうかを確認する方法
-
[解決済み】koch snowflake java recursion