Wenn ich versuche, eine Kriegsdatei zu generieren, zeigt es einige Fehler wie
[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar
Wenn ich es tue echo %path%
, zeigt es
C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\b
in;C:\Program Files\Notepad++\;%JDK_HOME%
Wenn ich es tue echo %JDK_HOME%
D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin
Ich weiß nicht, warum sich maven auf jre bezieht, wenn meine Umgebungsvariable jdk ist. Ich ändere auch installierte JRE auf jdk1.6.
\bin
und Sie sollten es%JDK_HOME%\bin
in Ihrem Pfad haben. Kannst du rennenD:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin\java -version
?JAVA_HOME
, dass es nicht auf Ihr JDK-Installationsverzeichnis eingestellt wirdJDK_HOME
. Siehe Maven-Installationsanweisungen .Antworten:
Es ist nur im Eclipse-Setup
Es hat 4 Schritte TODO.
Schritt 1: Klicken Sie mit der rechten Maustaste auf die Eigenschaften des Eclipse-Projekts
Schritt 2: Java Build Path -> Bibliotheken
Schritt 3: Wählen Sie JRE-Systembibliothek -> Klicken Sie auf die Schaltfläche Bearbeiten -> Klicken Sie auf die Schaltfläche Installierte JREs
Schritt 4: Bearbeiten Sie JRE als Set JRE Home = JAVA_HOME
ScreentShot:
quelle
Gehen Sie zu Fenster -> Einstellungen ... -> Java -> Installierte JREs
Bearbeiten Sie JRE Home = JAVA_HOME oder JAVA_HOME \ jre
Wenn Sie beispielsweise jdk1.6.0_04 verwenden, das in C: \ Programme installiert ist, nehmen Sie die folgenden Änderungen vor:
C: \ Programme \ Java \ jdk1.6.0_04 \ jre oder C: \ Programme \ Java \ jdk1.6.0_04 anstelle der Standarddatei unter C: \ Programme \ Java \ jre7
quelle
Hatte das gleiche Problem, aber in meinem Fall zeigte die Verzeichnisfinsternis, dass die JRE das JDK war. Also suchte ich nach diesem tools.jar und war da.
Ich tat
Und dann gut kompiliert
quelle
Die Variable JDK_HOME sollte immer auf das Basisverzeichnis des JDK zeigen, nicht auf das Bin-Verzeichnis:
D:\name\name\core java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04
Das definierte, fixiere deinen Weg zu sein
C:\Windows\System32;D:\name\name1\Softwares\Maven\apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
quelle
Es war ein Eclipse-Problem. Als ich versuchte, es über die Kommandozeile mit zu erstellen
mvn package
es hat gut funktioniert.
quelle
Es hört sich so an
JDK_HOME
, als hätten Sie eine Benutzervariable undPATH
eine Systemvariable definiert oder umgekehrt -echo %PATH%
sollte keine ungelösten Variablen wie enthalten...;%JDK_HOME%
.Stellen Sie sicher, dass sich der
%JDK_HOME%\bin
Pfad in Ihrer PATH-Variablen befindet und nicht aufgelöst ist, auch wenn Sie den Pfad explizit eingeben müssen.quelle
Ich hatte den gleichen Fehler, wegen der JUNIT-Version hatte ich 3 3.8.1 und ich habe zu 4.8.1 gewechselt.
Die Lösung ist also
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>
quelle
Für andere, die in Eclipse mit diesem Problem konfrontiert sind, müssen Sie die anderen JREs aus den installierten JREs entfernen, auch wenn der Pfad korrekt auf JDK eingestellt ist.
Gehen Sie zu Fenster -> Einstellungen -> Java -> Installierte JREs
Wählen Sie nicht verwendete JREs einzeln aus und entfernen Sie sie
Es hat bei mir funktioniert.
quelle
Ich habe alle oben genannten Vorschläge ausprobiert, was bei mir nicht funktioniert hat, aber ich habe herausgefunden, wie ich den Fehler in meinem Fall beheben kann.
Die folgenden Schritte haben das Projekt erfolgreich kompiliert:
Klicken Sie im Projektexplorer mit der rechten Maustaste auf das Projekt und wählen Sie "Eigenschaften". Gehen Sie in der Baumstruktur rechts zum Java-Erstellungspfad. Wählen Sie die Registerkarte "Bibliotheken". Klicken Sie auf "Bibliothek hinzufügen". Wählen Sie JRE-Systembibliothek. Weiter klicken. Wählen Sie das Optionsfeld Alternative JRE. Klicken Sie auf "installierte JREs". Wählen Sie die JRE mit der richtigen Version. Klicken Sie auf Übernehmen und schließen Sie. Klicken Sie im nächsten Bildschirm auf Fertig stellen. Klicken Sie im Eigenschaftenfenster auf Übernehmen und schließen. Klicken Sie im Projektexplorer mit der rechten Maustaste auf Ihre pom.xml und wählen Sie Ausführen als> Maven Build. Schreiben Sie in das Zieltextfeld "Installieren". Klicken Sie auf Ausführen.
Dadurch wurde das Projekt in meinem Fall erfolgreich erstellt.
quelle
In Eclipse werden Aktionen wie das Importieren von Maven-Projekten oder das Aufrufen von "Update Sources" in derselben JVM ausgeführt, in der Eclipse ausgeführt wird. Wenn diese JVM von JRE stammt, die nicht Teil von JDK ist, gibt es keinen Java-Compiler (die tools.jar).
Um Maven aus Eclipse heraus zu starten, muss JRE, das für den Start verwendet wird, auch von JDK stammen. Standardmäßig registriert Eclipse JRE, in dem es gestartet wird. Dies kann jedoch auf der Einstellungsseite "Fenster / Einstellungen ... / Java / Installierte JREs" konfiguriert werden, wie oben von Parthasarathy erwähnt
Alternativ können Sie die compilerId in der Datei pom.xml angeben, damit Maven beim Kompilieren von Java-Code nicht nach JDK sucht:
<plugin> <artifactid>maven-compiler-plugin</artifactid> <configuration> <compilerid>eclipse</compilerid> </configuration> <dependencies> <dependency> <groupid>org.codehaus.plexus</groupid> <artifactid>plexus-compiler-eclipse</artifactid> <version>xxxx</version> </dependency> </dependencies> </plugin>
quelle
Ich bin auf ein ähnliches Problem gestoßen, und da niemand einen ähnlichen Ansatz wie ich veröffentlicht hat, gehe ich.
quelle
Ich kann durch folgende Schritte eine Lösung finden:
Zuletzt Maven Clean und Maven Install.
quelle
Es hängt von der Maven-Version ab. Wenn Sie eine neuere Version von Maven installieren, wird dieser Fehler nicht angezeigt. Sie können auch ein anderes Verzeichnis mit der Datei tools.jar lib / tools.jar hinzufügen - dies löst auch dieses Problem.
quelle
Wenn Sie alle oben genannten Schritte ausführen, die möglicherweise verwirrt sind und bei unserem Problem nur tools.jre fehlt, fügen Sie einfach tools.jre mit den folgenden Schritten hinzu, und das Problem ist behoben.
Schritt 1: Gehen Sie in Eclipse zu Windows -> Einstellungen
Schritt 2: Java -> Installierte JREs (Doppelklicken Sie darauf)
Schritt 3: Klicken Sie auf die Schaltfläche Bearbeiten -> Klicken Sie auf Externe JARs hinzufügen
Schritt 4: Wählen Sie nun den Pfad tools.jar aus
Jetzt Änderungen anwenden und es funktioniert gut.
Hier ist ein Screenshoot
quelle
Obwohl es oben einige Nicht-Eclipse-Antworten für diese Frage gibt, in denen Eclipse nicht erwähnt wird, sind Änderungen der Pfadvariablen erforderlich. Eine Alternative ist die Verwendung der Befehlszeilenoption java.home, z.
mvn package -Djava.home="C:\Program Files\Java\jdk1.8.0_161\jre"
Beachten Sie das \ jre am Ende - eine überraschende Notwendigkeit.
quelle
Keine der aktuellen Antworten hat mir hier geholfen. Wir bekamen so etwas wie:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin: #.#.#:compile (default-compile) on project Streaming_Test: Compilation failure [ERROR] Unable to locate the Javac Compiler in: [ERROR] /opt/java/J7.0/../lib/tools.jar
Dies liegt daran, dass die Java-Installation festgestellt hat, dass es sich um eine JRE-Installation handelt. Es wird erwartet, dass sich JDK-Inhalte über dem JRE-Unterverzeichnis befinden, daher das
../lib
im Pfad. Unsertools.jar
ist in$JAVA_HOME/lib/tools.jar
nicht in$JAVA_HOME/../lib/tools.jar
.Leider haben wir keine Option, ein JDK auf unserem Betriebssystem zu installieren (fragen Sie nicht), so dass dies keine Option war. Ich habe das Problem behoben, indem ich dem Maven Folgendes hinzugefügt habe
pom.xml
:<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <fork>true</fork> <!-- not sure if this is also needed --> <executable>${JAVA_HOME}/bin/javac</executable> <!-- ^^^^^^^^^^^^^^^^^^^^^^ --> </configuration> </plugin>
Indem wir die ausführbare Datei auf die richtige Stelle zeigen, haben wir zumindest unsere Kompilierungsfehler überwunden.
quelle
Stellen Sie für Intellij Idea alles entsprechend ein (ähnlich wie hier):
JAVA_HOME = C:\Program Files\Java\jdk1.8.0_60 JRE_HOME = JAVA_HOME\jre
und vergessen Sie nicht, Idea neu zu starten . Dieses Programm nimmt beim Start Variablen auf, sodass Änderungen an Umgebungsvariablen während der Ausführung des Programms keine Auswirkungen haben.
quelle