Ich kompiliere ein Projekt in Eclipse mit m2eclipse. Ich habe den JDK-Pfad in Eclipse folgendermaßen festgelegt:
Windows-->preferences-->installed jres--> jdk1.7.xx path
Dies zeigt jedoch einen Fehler
[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.424s
[INFO] Finished at: Tue Oct 29 15:21:01 IST 2013
[INFO] Final Memory: 5M/15M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler- plugin:3.1:compile (default-compile) on project TEST-WEB: Compilation failure
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
Antworten:
Darüber hinaus müssen Sie möglicherweise Maven JRE (siehe @ jlars62-Antwort) wie folgt ändern. Gehen Sie zu Ausführen -> Konfigurationen ausführen und wählen Sie den Maven Build aus, den ich ausgeführt habe (im linken Bereich). Dann habe ich auf die Registerkarte JRE geklickt und die Option Arbeitsbereich Standard-JRE ausgewählt
quelle
Für mich ist es genau das, worüber sich der Maven of Eclipse beschwert
Also drücke ich die
Edit
Taste und ändere den Pfad zum JDK-Ordner. Dann bereinige ich das Projekt und alles beginnt zu funktionierenquelle
Installed JREs
Ordner anstelle von jdk platzieren. Aber es hat mich wirklich gelöst. DankeJAVA_HOME
Umgebungsvariable auf den JDK-Stammordner - erforderlich, wenn Sie die Befehlszeile oder maven (mvn
) ausführen .JAVA_HOME
nach weiteren Informationen)quelle
Für mich hat nichts funktioniert, bis ich diese Änderung an meiner pom.xml vorgenommen habe:
Weitere Hinweise
Ich konnte sehen, dass m2e in einer JRE ausgeführt wurde, nicht im JDK. Nichts, was ich geändert habe, einschließlich des Hinzufügens zur eclipse.ini:
Am Ende habe ich m2e nie in einem JDK ausführen lassen, aber das explizite Festlegen des Java-Compilers (wie oben) hat den Trick getan.
quelle
In meinem Fall wurde dies folgendermaßen gelöst:
Gehen Sie zu Ihrer 'Laufzeitkonfiguration' und konfigurieren Sie Ihre JRE für ein JDK.
Ich habe die Antwort kopiert, nur für den Fall, dass sie aus irgendeinem Grund gelöscht wird, aber die Quelle ist hier
quelle
Ich habe diesen Fehler erhalten, als ich versucht habe, einen Maven-Build innerhalb von Eclipse zu erstellen.
Für mich war die Antwort zu
Run
->Run Configurations
und wählte das aus, dasMaven Build
ich gerade ausführte (im linken Bereich). Dann habe ich auf dieJRE
Registerkarte geklickt und die Option ausgewähltWorkspace default JRE
quelle
Möglicherweise ist jre bereits hinzugefügt
und suchen Sie nach dem JDK in meinem Fall Pfad war
C:\Program Files\Java\jdk1.8.0_111
Sie werden ein Fenster wie dieses sehen
Und du bist fertig.
quelle
Ich habe das gleiche Problem und füge
JAVA_HOME
nur Umgebungsvariablen hinzu .JAVA_HOME
Eingabeaufforderung aus dem Projektverzeichnis öffnen und ausführenmvn clean install
(verwenden Sie das Intellij-Terminal nicht).quelle
Ich habe alle oben genannten Versuche unternommen, aber immer noch die gleiche Fehlermeldung erhalten.
In meinem Fall wurde eine tatsächliche JRE fälschlicherweise als JRE-Systembibliothek im projektspezifischen Erstellungspfad verwendet, wodurch offensichtlich alle anderen hier diskutierten Einstellungen überschrieben wurden.
Wenn dies in Ihrem Fall der Fall ist, versuchen Sie Folgendes:
quelle
<build> <sourceDirectory>flockWebclient</sourceDirectory> <resources> <resource> <directory>resources</directory> <excludes> <exclude>**/*.java</exclude> </excludes> </resource> </resources> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.5.1</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> </plugins> </build>
in Ihrer pom.xmlEine Alternative, wenn die Antwort von Jaipster nicht funktioniert, ist:
Fenster> Einstellungen> Java> Installierte JREs
Bearbeiten Sie dann das jre so, dass es auf das jdk und nicht auf das jre zeigt (das jre-Home, das im jre-Paketeditor abgelegt ist).
Das hat bei mir funktioniert.
quelle
Wenn Sie den
Maven
Befehl voncmd
ausführen, stellen Sie sicher, dass Sie den JDK-Pfad festgelegt haben, bevor Sie den Befehl ausführen. In meinem Fall habe ich eine.bat
Datei erstellt, die Folgendes enthält:quelle
Beim Versuch, eine JAR-Datei meiner Projektanwendung mit zu erstellen,
mvn clean install
trat das gleiche Problem auf , obwohl die Anwendung unter Eclipse einwandfrei funktionierte.Das Problem war in der Tat zu naiv, dass ich die Umgebungsvariable JAVA_HOME nicht festgelegt hatte . Ich musste lediglich die Umgebungsvariable JAVA_HOME auf das JDK-Verzeichnis setzen und sicherstellen, dass es nicht bis "\ bin" und ohne Semikolon ";" .
Wie ich es verstanden habe ist wie folgt:
Die Anwendung funktionierte in Eclipse einwandfrei, da sich die JRE- Systembibliothek auf JRE im Inneren bezog JDK-Ordner anstatt auf einen externen JRE-Ordner ohne JDK bezog. [Wie in anderen Antworten sehr gut erklärt]
Diese Konfiguration gilt nicht für den Befehl maven , den wir an der Eingabeaufforderung ausführen. Es wird weiterhin nach der Variablen JAVA_HOME gesucht, um auf die JRE-Systembibliothek zuzugreifen. Wenn sie nicht gefunden wird, verweist sie auf einen externen JRE-Ordner ohne JDK.
quelle
Es gibt verschiedene Optionen, die angegeben werden müssen.
Schritte: Direkt am Projekt im Projektexplorer Gehen Sie zu Ausführen-> Konfiguration ausführen -> Klicken Sie auf Maven Build -> Klicken Sie auf Ihre Build-Konfiguration / oder erstellen Sie eine neue Konfiguration. Sie sehen das Fenster als den angegebenen Schnappschuss unten. Klicken Sie dort auf die Registerkarte JRE.
Sie sehen, dass Sie 3 Optionen haben 1) Arbeitsbereich-Standard-JRE 2) Ausführungsumgebung 3) Alternative JRE 1) Arbeitsbereich-Standard-JRE wird über das Menü 'Fenster' oben festgelegt -> Einstellungen -> Java -> Installierte JREs - Hier können Sie Ihre hinzufügen jdk 2) Ausführungsumgebung jdk kann in pom.xml festgelegt werden, wie von @ksnortum erwähnt
3) Alternative JRE kann verwendet werden, um ein JDK aus Ihrem Verzeichnis auszuwählen
quelle
Für mich befand sich die JRE in der Umgebungsvariablen PATH vor dem JDK-Pfad
Also habe ich 1 entfernt. Wahrscheinlich würde ein Austausch sie auch beheben.
quelle
Meine Antwort bezieht sich auf die Eclipse in Windows-Umgebung.
Ich ging zu Einstellungen -> Java -> Installierte JREs. Ich habe das JDK hier NICHT gesehen. Ich habe nur die JRE hier gesehen. Also habe ich das JDK hinzugefügt und dann das JRE deaktiviert. Dann JDK überprüft. Dann habe ich die POM-Datei mit Run Configurations ausgeführt. Wählen Sie die Registerkarte JRE und wählen Sie die Option "Arbeitsbereich Standard ...". Hier sind die Bilder
quelle
Problemstellung = In dieser Umgebung wird kein Compiler bereitgestellt. Vielleicht laufen Sie eher auf einer JRE als auf einem JDK? Intellij
Lösung
Bitte stellen Sie die Umgebungsvariable wie unten ein, um das Problem zu lösen
Variablenname : JAVA_HOME
Variabler Wert : C: \ Programme \ Java \ jdk1.8.0_202
Variablennamen : M2_HOME
Variabler Wert : C: \ Programme \ apache-maven-3.6.0
Außerdem In Java und maven Pfad, in „ Systemvariablen “ wie folgt:
C: \ Programme \ Java \ jdk1.8.0_202 \ bin
C: \ Programme \ apache-maven-3.6.0 \ bin
quelle
Es gibt eine andere mögliche Antwort auf diese Frage, und ich bin vielleicht die einzige Person, die dumm genug ist, darüber gestolpert zu sein, aber ich denke, es lohnt sich hinzuzufügen, da keine der anderen Antworten zutraf, da ich diese Einstellungen bereits korrekt hatte.
Wenn Sie ein JDK installieren, werden Sie vom Installationsprogramm gefragt, wo Sie die Dateien installieren möchten. Unter Windows ist dies standardmäßig C: \ Programme \ Java \ jdk1.8.0_74 (oder eine andere Version, die Sie installieren).
Anschließend werden Sie nach einem Verzeichnis gefragt, in dem die JRE installiert werden soll. Dies ist standardmäßig C: \ Programme \ Java \ jre1.8.0_74.
Beachten Sie, dass einer jdk 1.8.0_74 und der andere jre 1.8.0_74 ist
Ich habe mich beeilt und dachte, das Installationsprogramm habe mir zweimal dieselbe Frage gestellt. Setzen Sie sowohl meine JDK- als auch meine JRE-Installationsspeicherorte auf D: \ devtools \ jdk \ jdk1.8.0_74, was dazu führte, dass das Installationsprogramm das JDK mit der JRE überschrieb. Dies führte (unter anderem) zu einer fehlenden javac.exe in meinem JDK-Bin und dem gleichen Fehler, den das OP hier in allen meinen Maven-Builds gemeldet hat.
quelle
Ich habe eine Lösung.
Die häufigste Lösung für dieses Problem besteht darin, den JDK-Speicherort als meine installierten JREs anstelle des JRE-Speicherorts zu ändern. Dies hat mein Problem diesmal jedoch nicht gelöst.
Also habe ich das Folgende getan, um das Problem zu lösen. Erweitern Sie die Registerkarte Installierte JREs, und Sie finden eine Ausführungsumgebung Registerkarte .
Klicken Sie auf Ihre bevorzugte Ausführungsumgebung. In meinem Fall war es JAVASE-1.8 . Dort werden 2 Optionen angezeigt. JDK und JRE . Wählen Sie dort JDK und das Problem ist behoben.
quelle
Ich habe gerade 3 Stunden mit diesem Problem verschwendet, bis ich es geschafft habe, es zum Laufen zu bringen. Ich hatte diesen Fehler im Eclipse-Terminal, als ich einen mvn-Kompilierungsbefehl ausgab:
In dieser Umgebung wird kein Compiler bereitgestellt. Vielleicht laufen Sie eher auf einer JRE als auf einem JDK?
Deshalb habe ich hier gelesen, dass ich eine neue Systemvariable namens JAVA_HOME erstellen und sie auf den JDK-Installationsordner verweisen muss. Dies erzeugte jedoch einen weiteren Fehler:
Die Quelloption 1.5 wird nicht mehr unterstützt. Verwenden Sie 1.6 oder höher
Konnte keine Lösung für dieses Problem finden, also ...
Die Lösung, um alles zu beseitigen, ist die Installation von Java SE Development Kit 8! Ich habe 9 verwendet und dachte, wenn es das neueste ist, muss es besser sein ...
Wie auch immer...
Installieren Sie JDK8 von hier aus: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
Definieren Sie dann den Umgebungswert des JAVA_HOME-Systems - Tutorial hier: https://docs.oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/
Starten Sie Eclipse neu und genießen Sie! (Zumindest habe ich das getan)
In der Hoffnung, dass dies einem armen Wanderer Ärger erspart.
quelle
In meinem Fall hatte ich einen Systemvariablenpfad mit dem Speicherort "C: \ ProgramData \ Oracle \ Java \ javapath".
In "C: \ ProgramData \ Oracle \ Java \ javapath" Speicherort Java, javaw nur dort. Ich erhalte also den gleichen Fehler.
Nachdem ich alle Dateien im Ordner "C: \ ProgramData \ Oracle \ Java \ javapath" entfernt hatte, wurde mein Fehler behoben.
quelle
Ich habe die meisten Antworten ohne Erfolg ausprobiert. Was für mich funktioniert hat war (nachdem ich https://stackoverflow.com/a/21279068/2408893 gefolgt bin ):
quelle
Die Frage bezieht sich zwar auf den Fehler beim
Eclipse
Setup, aber eine Antwort auf die Behebung dieses Fehlers mitIntelliJ
und das Setup von Windows 10 kann auch hier hilfreich sein.1 . Gehen Sie zu
File
->Settings
->Build, Execution, Deployment
->Build Tools
->Maven
->Importing
2 . Stellen Sie
JDK
fürImporter
wie unten gezeigtJAVA_HOME
Auch
JAVA_HOME
gesetzt werden sollteJDK
Pfad auf Umgebungsvariablen -> Systemvariablen und fügen Sie auch%JAVA_HOME%\bin
auf dem Weg Systemvariablenquelle
Ich hatte das gleiche Problem. Der Fehler, den ich gemacht habe, war, dass ich jre path nur im Pfad var und nicht im jdk-Pfad hinzugefügt habe. Wenn jdk path zum Pfad hinzugefügt wurde und das Maven-Projekt erstellt wurde, funktioniert es perfekt. Vielen Dank
quelle
Ich habe die folgende Änderung vorgenommen und es hat bei mir funktioniert. Ich hoffe, es hilft jemandem.
quelle
Versuche dies.
quelle
Neue JRE-Definition hinzufügen (Pfad JDK auswählen), hat für mich funktioniert.
http://help.eclipse.org/neon/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Ftasks%2Ftask-add_new_jre.htm
quelle
Ich habe den gleichen Fehler erhalten, als ich eine neue EC2-Ubuntu 16.04-Instanz mit bereits installiertem Java erstellt habe. Beim Ausführen von mvn clean package ist dieses Problem aufgetreten, und die folgende Lösung hat bei mir funktioniert.
Wenn Sie auf einem Ubuntu-Server arbeiten, können Sie versuchen, Java erneut zu installieren. Verwenden Sie dazu diese Antwort. So installieren Sie das JDK unter Ubuntu Linux
quelle
In Windows 7 - 64 Bit gibt es ein Berechtigungsproblem, das das Installationsprogramm daran hindert, die Datei C: \ Programme \ Java \ jdk1.6.xx \ lib \ tools.jar in Ihre lokale Datei zu entpacken. Diese JAR-Datei wird von Maven-Compiler-Plugin Version 3.x anstelle des üblichen Javac verwendet
Lösung: Führen Sie als Administrator das Java JDK-Installationsprogramm aus! Stellen Sie sicher, dass sich die Datei tools.jar im Verzeichnis C: \ Programme \ Java \ jdk1.6.xx \ lib \ befindet
Wenn Sie das m2e maven-Integrations-Plugin verwenden, möchten Sie, dass die Datei für Eclipse über die folgenden Schritte in Eclipse sichtbar ist:
Gehen Sie zu Fenster -> Einstellungen -> Java -> installierte JREs. Wählen Sie das JDK aus, das Sie verwenden (C: \ Programme \ Java \ jdk1.6.xx). Drücken Sie Bearbeiten, um die Liste der Jars einschließlich tools.jar anzuzeigen, ODER Sie können Fügen Sie es als Externe JAR hinzufügen hinzu. Konfigurieren Sie dann den Maven, indem Sie die folgenden Schritte ausführen:
Ausführen-> Konfigurationen ausführen-> Name, Basisverzeichnis und Ziele eingeben. Wechseln Sie dann im selben Fenster zur Registerkarte JRE und zeigen Sie auf JDK \ jdk1.6.xx \
quelle
Zusätzlich zur obigen Antwort könnte ich sagen, dass Sie einfach versuchen, Maven vom Terminal aus (außerhalb von Eclipse) auszuführen. Auf diese Weise können Sie verstehen, dass das Problem in Eclipse liegen sollte, wenn es von außen, aber nicht in Eclipse erstellt wird.
quelle
Zu dieser Frage gibt es mehrere Antworten, aber alle beziehen sich auf die Konfiguration des richtigen Pfads von JDK. Mit JRE können wir dieses Problem jedoch nur lösen.
Wir müssen nur die Deployment Assembly verwenden, um den Pfad der gepackten War-Datei des Java EE-Projekts zu konfigurieren und dann die Maven-Installation erneut auszuführen.
Schritte zum Verwenden der Bereitstellungsassembly:
Klicken Sie mit der rechten Maustaste auf das Jave EE-Projekt -> klicken Sie auf Eigenschaften -> klicken Sie auf Deployment Assembly
Klicken Sie auf die Schaltfläche Hinzufügen -> Klicken Sie im Dateisystem auf Archive -> Klicken Sie auf Weiter -> Klicken Sie auf Hinzufügen -> Gehen Sie zum Verzeichnis .m2 \ respository und suchen Sie nach der generierten Kriegsdatei -> Kriegsdatei auswählen -> Klicken Sie auf die Schaltfläche Öffnen -> Klicken Sie auf Übernehmen -> OK
Klicken Sie mit der rechten Maustaste auf das Projekt -> Klicken Sie unter Ausführen als auf Maven installieren
Dadurch wird Ihr Projekt erfolgreich und ohne Compilerfehler erstellt.
Hoffe, dies löst das Problem ohne JDK.
quelle