wake-up-neo.com

maven Build fehlgeschlagen: Javac Compiler konnte nicht gefunden werden: JRE- oder JDK-Problem

Ich habe mein Java_HOME auf gesetzt 

C:\Program Files (x86)\Java\jdk1.6.0_18

Nach der Installation von maven bekomme ich folgende Nachricht von Eclipse:

Grund:

Unable to locate the Javac Compiler in:
  C:\Program Files (x86)\Java\jre6\..\lib\tools.jar
Please ensure you are using JDK 1.4 or above and
not a JRE (the com.Sun.tools.javac.Main class is required).
In most cases you can change the location of your Java
installation by setting the Java_HOME environment variable.

Ich bin mir sicher, dass dies der schwierige Teil ist 

Stellen Sie sicher, dass Sie JDK 1.4 oder .__ verwenden. über und kein JRE

Wenn ich die Konfiguration auf JRE6 starte, wie kann ich das JDK 1.6 ändern, das ich bereits installiert habe

EDIT

Ich habe sogar versucht, das Plugin zu ändern:

<plugin>
                <groupId>org.Apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <executable>C:\Program Files (x86)\Java\jdk1.6.0_18\bin</executable>
                </configuration>
            </plugin>

Trotzdem bekomme ich den gleichen Fehler

Vielleicht habe ich vergessen zu sagen, dass ich Eclipse Maven Plugin verwende.

107

Sie können versuchen, das JDK Eclipse wie folgt zu aktualisieren:

Fügen Sie die JRE in Window-> Preferences ...-> Java-> Installierte JREs hinzu und legen Sie sie fest:

JRE type: Standard VM JRE 
Name: jdk1.6.0_18
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18

Wenn dies nicht der Fall ist, können die Klammern und Leerzeichen im Java_HOME-Pfad Probleme verursachen. Versuchen Sie, Ihr JDK an einen anderen Ort zu kopieren und Ihr Java_HOME zu aktualisieren.

135
lucrussell

Eclipse.ini benötigt das Argument vm, um auf Ihren jdk-Speicherort zu verweisen. 

Bearbeiten Sie die Eclipse.ini-Datei so, dass sie auf Ihre jdk-Startseite verweist.

-vm
C:\Program Files\Java\jdk1.6.0_06

Dadurch wird sichergestellt, dass Eclipse vom JDK und nicht von einer Standard-JRE auf Ihrem Computer ausgeführt wird.

19
Sai Hegde

Sie versuchen:

Gehen Sie zu Preferences/Java/Installed JREs und fügen Sie einen für den Ort "C:\Program Files\Java\jdk1.6.0_27\jre oder ähnliches ein. 

Entfernen Sie die für C:\Program Files\Java\jre6 

Wie Sie sehen, ist der Pfad C:\Program Files\Java\jre6\..\lib\tools.jar nur sinnvoll, wenn der erste Teil (bis/..) durch C:\Program Files\Java\jdk1.6.0_27\jre ersetzt wird.

12
cuocdoibian1971

Wenn Sie Fork auf true setzen, wurde das Problem für mich gelöst.

<configuration>
<fork>true</fork>
<source>1.6</source>
<target>1.6</target>
</configuration>

Vielen Dank, Sam Yang ... Sie haben meinen Tag gemacht

9
Prash

Ich hatte genau das gleiche Problem! Seit Tagen suchen und suchen, weil das ganze Geschwätz über "setze -vm c:\program files\Java\jdkxxxxx\bin" als Argument für einen Shortcurt NICHT in das Ar-Ar-Verzeichnis ein, sondern NICHT AT ALL heklp! (Habe ich frustriert? Glaube mir, das ist eine Untertreibung! Ich bin einfach wütend, weil ich eine Woche verloren habe, als ich versuchte, Maven zuverlässig zu machen!) 

Ich hatte sehr unvorhersehbares Verhalten. Manchmal kompiliert, manchmal nicht. Wenn ich ein Maven clean gemacht habe, konnte es den Compiler nicht finden und schlug fehl. Wenn ich dann etwas am Baupfad geändert habe, hat es plötzlich wieder funktioniert !!

Bis ich zu Window -> Preferences -> Java -> JREs ging. Ich habe eine neue JRE unter Verwendung des Speicherorts des JDK hinzugefügt und die JRE dann entfernt. Plötzlich lief Maven stabil! 

Vielleicht lohnt es sich, Buchstaben mit der Schriftgröße 30 oder so in das Apache-Handbuch einzufügen? Mit allem Respekt ist dies für die Java-Community einfach unerhört! Ich kann mir nicht vorstellen, wie viele Tage all diese Leute verloren haben, als sie versuchten, ihre Probleme zu lösen. Ich kann mir unmöglich vorstellen, dass dies als endgültige Version veröffentlicht wird. Ich persönlich würde es nicht einmal wagen, so etwas unter dem Namen BETA-Software zu veröffentlichen ...

Herzliche Grüße oder so .... Nach einer Woche Manipulation kann ich endlich mit der Entwicklung beginnen. Ich hoffe, mein Chef wird das nicht erfahren. Es hat mich viel Mühe gekostet, ihn davon zu überzeugen, NICHT zu .NET zu gehen, und es tut mir schon leid.

8
Lorenzo

Ich habe das gleiche Problem mit Ausführen als -> Maven in Eclipse installiert. Java_HOME und Eclipse.ini waren in Ordnung und verweisen auf mein aktuelles JDK. M2clipse verwendete jedoch JRE. Die Verwendung von mvn install außerhalb von Eclipse hat gut funktioniert! In meinem Fall habe ich das Problem wie folgt gelöst:. Navigieren Sie in Eclipse: Fenster -> Einstellungen -> Java -> Installierte JREs 2. Es gab zwei inaktive Einträge für eine JRE und ein JDK. Das aktive war das zuletzt installierte JDK. Löschen Sie alle Einträge, die ein Maven verwenden soll.

Ich denke, dass Maven nicht berücksichtigt, welcher aktiv ist ...

3
Markus

Ich habe gerade maven 3.0.4 installiert, M2_HOME, M2 und Java_HOME entsprechend gesetzt. Ich habe dann die folgenden Befehle ausgeführt:

mvn archetype:generate....

mvn compile

Ich habe eine fehlgeschlagene Nachricht erhalten: maven unable to locate javac compiler

Auf meinem Computer habe ich standardmäßig jre install unter c:\program files\Java\jre.1.6 ..__ und ich habe die anderen c:\Java\jdk1.6 und Java_HOME auf gesetzt dieses c:\Java\jdk1.6

Ich sehe nichts falsch an meiner Einstellung. Nach der Suche entschied ich mich, mvn.bat zu suchen. Ich wiederholte %Java_HOME% jeden Schritt und es wird korrekt als C:\Java\jdk1.6 angezeigt. Wenn ich jedoch den Befehl ausführen: mvn --version, wird Java-Startseite angezeigt: c:\Programme\Java\jre1.1.6 .

Schließlich habe ich herausgefunden, dass ich nur -Djava.home=c:\Java\jdk1.6 wie im folgenden Befehl einstellen muss und jetzt gut funktioniert: 

%MAVEN_Java_EXE% %MAVEN_OPTS% -classpath %CLASSWORLDS_JAR% "-Dclassworlds.conf=%M2_HOME%\bin\m2.conf" "-Djava.home=%Java_HOME%" "-Dmaven.home=%M2_HOME%" %CLASSWORLDS_LAUNCHER% %MAVEN_CMD_LINE_ARGS%

Hoffe das hilft.

Hinweis: Dies gilt für mvn in der Befehlszeile und nicht für Eclipse.

3
smngo

Basis von http://maven.Apache.org/plugins/maven-compiler-plugin/examples/compile-using-different-jdk.html müssen Sie die Abzweigung in Ihrer pom.xml auf true setzen .

2
Sam Yang

Nur Eclipse-Setup

Führen Sie die folgenden Schritte aus:

  1. Klicken Sie mit der rechten Maustaste auf Eclipse-Projekteigenschaften

  2. Java Build Path -> Bibliotheken

  3. Wählen Sie JRE System Library aus -> Klicken Sie auf die Schaltfläche Bearbeiten

  4. Klicken Sie auf die Schaltfläche "Installierte JREs ..."

  5. Bearbeiten Sie JRE wie folgt: Setzen Sie JRE Home = Java_HOME oder Java_HOME\jre

ScreentShot:

enter image description here

Danke vielmals,

Partha

2
Parthasarathy B

Es hört sich an, als würde Maven die JRE verwenden, nicht das JDK. Vielleicht haben Sie Maven vor der Installation des JDK installiert? 

Überprüfen Sie die Einstellungsdateien . Es gibt insgesamt 3, System, Benutzer und Projekt. Am wahrscheinlichsten in der Installationskonfiguration ($ M2_HOME/conf/settings.xml) oder möglicherweise in der Konfiguration pro Benutzer ($ {user.dir} /. M2/settings.xml).

2
Devon_C_Miller

Ich habe das Problem gelöst, indem ich den Ort der installierten JRE in das Verzeichnis im JDK selbst geändert habe. Durch Festlegen des richtigen Werts der Umgebungsvariable Java_HOME konnte das Problem nicht gelöst werden. 

In meinem Fall gibt es zwei Verzeichnisse

  • C:\Program Files\Java\jdk1.7.0_03 --> For JDK

  • C:\Program Files\Java\jre7 --> For JRE

Anfangs habe ich C:\Program Files\Java\jre7 als Installierte JRE in Eclipse festgelegt und ich bekam den gleichen Fehler im Fall von Maven (Ant funktionierte einwandfrei).

Durch Ändern der installierten JRE in C:\Program Files\Java\jdk1.7.0_03\jre7 als Installierte JRE in Eclipse wird das Problem behoben.

2
Nikhil

Die Lösung ist einfach, einige Male die Eclipse-Fenster -> Präferenz -> Java -> Installierte JREs, die auf C:\Program files\Java\jre verweisen. Wenn ich sie in C:\Program files\Java\JDK 6.0\jre änderte, funktioniert sie 100%. 

1
santhosh

Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften -> Java-Erstellungspfad. Wählen Sie den JRE-Systempfad -> Bearbeiten. Wählen Sie die Workspace Default-JRE aus und verweisen Sie auf JDK> 1.4

1
asHIS

Window -> Preferences -> Java -> installed JREs -> Execution Enviroments -> click the checkbox on the right side

1
Gambotic

In meinem Fall in Eclipse Run-> Debug Configurations.__In der Registerkarte "jre" wurde die jdk anstelle der jre ausgewählt.

Vergessen Sie nicht, dass Sie, wenn Sie Ihr Projekt von einer bestimmten Eclipse-Konfiguration aus ausführen, die Java-Laufzeitumgebung unter "Konfigurationen ausführen" -> "Ihre Maven-Konfiguration" -> "JRE-Registerkarte" ändern sollten, nachdem Sie das richtige JDK hinzugefügt haben Ihre Eclipse-Einstellungen.

1
Ivan Fernandez

Ich hatte das gleiche Problem bei Amazon Linux. Es stellte sich heraus, dass ich die Entwicklungsversion von jdk installieren musste:

Sudo yum -y install Java-1.7.0-openjdk-devel

1
Evan Siroky

Gehen Sie zu Eclipse Window-> Preferences ...-> Java-> Installierte JREs sollten auf das installierte JDK zeigen, nicht auf JRE. 

1
Sudipto

Wie bereits erwähnt, sollte der Eclipse Window->Preferences...->Java->Installed JREs auf das installierteJDKzeigen, nicht auf die JRE. Nur dann kann der in der Fehlermeldung angegebene ../lib-Ordner gefunden werden.

Trotzdem kann das Problem erneut auftreten. Mein Weg in Eclipse (Juno) besteht darin, einen Maven -> Update project... auszuführen, wonach das Problem verschwindet.

Ich vermute, der Grund ist, dass sich einige der von Eclipse generierten Dateien (.classpath, .project, .preferences) in Subversion für das Projekt befinden, in dem ich diese Probleme habe. Daher führt ein svn-Update zu dem Problem, und ein Konfigurationsupdate von maven in Eclipse behebt es erneut.

Echte Lösung: Lass Eclipse generierte .files aus der Versionskontrolle aus und lasse das maven Eclipse-Plugin die Projektkonfiguration übernehmen. (zusätzliche Hinweise/Vorschläge willkommen).

1
avandeursen

Ich habe die Konfiguration des Maven-Compiler-Plugins geändert, um die ausführbare Datei und den Fork mit dem Wert true hinzuzufügen. 

            <configuration>
                <fork>true</fork>
                <source>1.6</source>
                <target>1.6</target>
                <executable>C:\Program Files\Java\jdk1.6.0_18\bin\javac</executable>
            </configuration>

Es hat für mich funktioniert.

0
Soumyajit Swain

Gehen Sie zu Eclipse> Voreinstellungen> Java> Installierte JREs> wählen Sie den Speicherort aus, auf den Sie gezeigt haben, und klicken Sie auf Bearbeiten> Externe JARs hinzufügen, und wählen Sie die Datei tools.jar aus

0
Dipendra Gurung

Echo %Java_HOME%
dann mvn --version

JRE Pfad sollte gleich sein .... dann geh Window -> preferences - Java - installed jre's
Der Ort sollte mit dem übereinstimmen, der in Java_Home angezeigt wird. 

0
vandana

Stellen Sie sicher, dass sich das "-vm" in Ihrer Eclipse.ini in zwei separaten Zeilen befindet, dh:

-vm
C:\Program Files\Java\jdk1.6.0_06
0
Kevin Van Dyck

Hatte das gleiche Problem. Keines der oben genannten Dinge funktionierte für mich:

Java_HOME von ...\jdk.1.8.0\in ...\jdk.1.8.0\jre\geändert

0
Coen Damen

Wenn Sie Java_HOME gesetzt haben und das Problem weiterhin besteht, versuchen Sie Folgendes. (Ich hatte das gleiche Problem auf einem neu installierten PC.)

Angenommen, Sie verwenden Eclipse.

  • Fenster öffnen - Voreinstellungen - Java - installierte Jrees Entfernen Sie alles, was Sie dort haben, und fügen Sie das gewünschte hinzu (JDK, keine JRE!).
  • Fügen Sie in demselben Fenster "open maven - installation" die mave-Installation hinzu, die Sie heruntergeladen und irgendwo extrahiert haben. (BENUTZEN SIE NICHT die eingebettete Maven-Installation, da sie einige bekannte Fehler aufweist.)

Das ist alles. Ihr Projekt wird nicht unter Problemen leiden. Die Hoffnung hilft.

0
Marcell

Viele andere Antworten sagen Ihnen, dass Sie Ihre Eclipse auf ein JDK statt auf eine JRE richten sollen.

Hier ist eine weitere Antwort mit spezifischer/klarer [als ich in jeder Antwort hier gesehen habe], Schritt für Schritt, wie man das macht:Wie installiert man JDK?

Das hat mich für dieses Problem gelöst.

0
cellepo

Gehen Sie zu den Eigenschaften, indem Sie mit der rechten Maustaste auf das Projekt klicken.

Fügen Sie in VERKNÜPFTE RESSOURCEN einen neuen Pfad mit dem Namen Java_HOME hinzu und geben Sie Ihren jdk-Speicherort an, etwa "C:\Programme\Java\jdk1.8.0_73"

Das ist alles!!

0
Macu Gómez

Ich hatte den gleichen Fehler, wegen der JUNIT-Version hatte ich 3. 3.8.1 und ich habe zu 4.8.1 gewechselt. 

so ist die lösung 

sie müssen zu POM gehen und sicherstellen, dass Ihre Abhängigkeit so aussieht 

 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.8.1</version>
  <scope>test</scope>
</dependency>
0
Ibo

Die Lösung dieses Problems ist sehr einfach ....

Wenn Sie keine ANT build-Datei haben, generieren Sie sie. In Eclipse können Sie auf einfache Weise eine ANT -Datei erstellen.

Siehe den Link zum Erstellen von ANT Build-Datei [ http://www.codejava.net/ides/Eclipse/how-to-create-ant-build-file-for-existing-Java- Projekt in Eclipse] .

Folgen Sie nun den vorgegebenen Schritten:

1) Fügen Sie Ihre ANT - Builddatei in der ANT-Ansicht hinzu, die sich im Ansichtsfenster befindet.

2) Klicken Sie mit der rechten Maustaste auf Ihre ANT - Builddatei und wählen Sie Run As und die zweite Option in diesem "Ant Build".

3) Nun öffnet sich ein Dialogfeld mit verschiedenen Optionen und Registerkarten.

4) Wählen Sie die Registerkarte JRE.

5) Sie sehen 3 Optionsfelder, und JRE oder JDK werden als Option ausgewählt.

6) Prüfen Sie sorgfältig, ob für die Optionsschaltflächen JRE ausgewählt ist, und ändern Sie sie in JDK.

7) Klicken Sie auf Übernehmen.

Das ist es...!!!

0
Nishat Lakhani

Sie müssen Java_HOME in mvn.ini angeben (es befindet sich im Mavenordner /bin), und Ihr Problem wird verschwinden.

0
Javicha

Sie können auch sicherstellen, dass Eclipse alle aktualisierten Änderungen enthält. Klicken Sie dazu mit der rechten Maustaste auf Ihr Projekt und drücken Sie dann den Menüpunkt "Aktualisieren".

0
GregNash

Ich würde vermuten, dass der Ort des Compilers in einem Pom definiert ist, damit das Compiler-Plugin am jre-Speicherort angezeigt wird, anstelle des jdk-Speicherorts, auf den Java_HOME zeigt.

0
Robin