2015-04-16 2 views
5

Ich versuche, Java-Anwendung und ich erhalte folgende Fehler,Es kann keine javac Compiler com.sun.tools.javac.Main finden, ist nicht auf dem Classpath Fehler

nicht gefunden einen javac Compiler zu laufen ; com.sun.tools.javac.Main ist nicht auf der Klassenpfad. Vielleicht JAVA_HOME verweist nicht auf den JDK

ich viele durch SO Fragen gegangen und gefundene Lösung ist JAVA_HOME Punkt JDK sein sollte, nicht JRE.

Dann habe ich versucht, JAVA_HOME in Eingabeaufforderung

enter image description here

ich gesetzt hatte diese JAVA_HOME von Arbeitsplatz-> Eigenschaften-> env Variablen drucken -> System vars wie unten,

enter image description here

ich hatte auch neue Variable in eclipse hinzugefügt mit Präferenzen,

enter image description here

Und schließlich bekomme ich immer noch den gleichen Fehler. Was ist falsch mit JAVA_HOME?

Update:

In eclipse-preferences-installed jres gibt es nur einen Eintrag vorhanden ist, und der ist jdk und ausgewählt,

enter image description here

Und unter project propertiesjava build path-libraries ist es JRE System Liberary [jdk1.8.0_31] verwendet wird .

enter image description here

Update 1:

C:\Program Files\Java\jdk1.8.0_31 haben Ordner jre benannt. Ist das der Ordner jre, der dieses Problem verursacht? Kann ich diesen Ordner entfernen? Gibt es eine Möglichkeit, nur jdk liberary im Projekt hinzuzufügen?

+0

Pleas bestätigen, ob Sie eine neue Konsole nach dem Abbinden Variablen oder nicht gestartet? Wenn es eine neue Konsole war, dann sieht alles andere sauber und korrekt aus. Ich schlage vor, dass Sie Java deinstallieren und neu installieren. Manchmal sind Installationsfehler vorhanden. Verwenden Sie die MSI- oder EXE-Datei zum Installieren und nicht zum Kopieren des Einfügeordners. – aProgrammer

Antwort

7

Eclipse ist eine IDE und als solche hat es (mindestens) zwei Java-Versionen: Die, die es selbst verwendet (JAVA_HOME) und eine JVM, die es verwendet, um Ihre Anwendung auszuführen. Die beiden müssen nicht gleich sein.

Um Ihr Problem zu beheben, müssen Sie in die Eclipse-Einstellungen schauen, insbesondere Installed JREs, die Ihnen eine Liste von Java-VMs gibt, die Eclipse zum Ausführen von Java-Code aus Projekten verwendet. Meine Vermutung ist, dass es dort mehrere Einträge geben wird und die Standardeinstellung ist eine JRE anstelle eines JDK.

Stellen Sie sicher, dass Sie ein JDK in der Liste haben und dann zu Ihrem Projekt gehen. Im Projekt können Sie auswählen, welche Java VM unter Java Build Path ->Libraries verwendet werden soll.

[EDIT] Schauen Sie genau auf dem letzten Screenshot: Sie haben konfiguriert Eclipse-C:\Program Files\Java\jdk1.8.0_31\jre zu verwenden, was bedeutet, dass Sie es in der JRE innerhalb des JDK hingewiesen habe. Verwenden Sie stattdessen C:\Program Files\Java\jdk1.8.0_31 (ohne die \jre am Ende).

[EDIT 2] Wenn Sie den Ordner jre löschen, wird Java nicht mehr funktionieren. JDK enthält auch eine JRE. Die JRE enthält rt.jar mit String.class und dergleichen. Der Java-Compiler befindet sich in tools.jar, der sich im JDK befindet.

JRE Eintrag in Eclipse Wenn Neuerstellung nicht hilft, müssen Sie es manuell zu dem Classpath hinzufügen.

Sie können eine Variable verwenden („Variable hinzufügen ...“) sicher Eclipse machen aktualisiert den Weg, wenn Sie auf eine neue/andere JRE wechseln. Versuchen Sie JAVA_HOME mit der Erweiterung lib/tools.jar

+0

siehe aktualisierte Frage. – fledgling

+1

Siehe meine Änderungen; Sie haben die JRE innerhalb des JDK ausgewählt. –

+0

Bitte lesen Sie die aktualisierte Frage. – fledgling

Verwandte Themen