In dieser Umgebung wird kein Compiler bereitgestellt. Vielleicht laufen Sie eher auf einer JRE als auf einem JDK?

633

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?
Sai Prateek
quelle
1
Wie starten Sie die Kompilierung? Befehlszeile? Eclipse-Tool?
Joeri Hendrickx
vom Eclipse-Tool Konfiguration
ausführen
Mögliches Duplikat des Maven Package Compilation Error
mlt
7
Hey, dieser Fehler kommt, weil Maven versucht, JDK zu bekommen, aber in Eclipse zeigt er auf JRE. Sie können den Pfad zu JDK ändern und es wird funktionieren. Überprüfen Sie unten Beitrag, der Ihnen helfen wird , -automation.com/…
Mukesh otwani
Ich poste diesen Link, damit in Zukunft jemand davon profitieren kann, wie ich es getan habe. stackoverflow.com/a/33873838/4525120
göttlicher

Antworten:

982
  1. Gehen Sie in Ihrer Eclipse-IDE zu Fenster > Einstellungen > Java > Installierte JREs > und überprüfen Sie Ihre installierten JREs . Sie sollten dort einen Eintrag mit einem JDK haben.
  2. Wählen Sie die Ausführungsumgebung wie unten gezeigt aus. Klicken Sie auf OK
  3. Klicken Sie dann mit der rechten Maustaste auf Ihr Projekt -> Maven -> Projekt aktualisieren

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

Geben Sie hier die Bildbeschreibung ein

Jaipster
quelle
15
@jaipster Ich habe versucht, dies zu tun, aber ich konnte das JDK im linken Bereich nicht finden, ich kann nur das JDRE7 sehen. Wissen Sie, warum?
diyoda_
4
Möglicherweise haben Sie jdk7 nicht auf Ihrem Computer installiert oder es ist nicht in Eclipse konfiguriert. Kannst du bestätigen.
Jaipster
52
@Diode Ich hatte das gleiche Problem. Ich ging zu "Installierte JREs" und klickte auf "Hinzufügen ...". Von dort aus navigierte ich zu C: \ Programme \ Java \ jdk1.7.0_XX und konnte dann den JRE wie beschrieben auswählen.
jlunavtgrad
7
Für mich war es genug, nur das JDK zur Liste der "Installierten JREs" hinzuzufügen (nicht die beste Benennung ...) und das Kontrollkästchen neben dem neuen JDK-Eintrag zu aktivieren, um es zur Standard-VM zu machen.
Tom Fink
7
Ich habe im Menü "Installierte JREs" auf die Schaltfläche "Suchen" geklickt. Eclipse durchsuchte eines der Laufwerke, auf die ich zeigte, und brachte alle installierten JREs und JDKs heraus.
Der Mitra Boy
141

Für mich ist es genau das, worüber sich der Maven of Eclipse beschwert

Geben Sie hier die Bildbeschreibung ein

Also drücke ich die EditTaste und ändere den Pfad zum JDK-Ordner. Dann bereinige ich das Projekt und alles beginnt zu funktionieren

Thai Tran
quelle
3
Ich würde eher vorschlagen, die JRE über die Schaltfläche "Hinzufügen" hinzuzufügen und dann einen JRE-Eintrag zu bearbeiten, um ein JDK-Eintrag zu werden! Klicken Sie nach dem Hinzufügen des JDK auf das Kontrollkästchen neben dem JDK-Eintrag. Dies sollte bereits die in diesem Beitrag beschriebenen Probleme lösen.
Tom Fink
3
Es ist seltsam . denn wie der Titel des Dialogs zeigt, sollte dies den Installed JREsOrdner anstelle von jdk platzieren. Aber es hat mich wirklich gelöst. Danke
Joe.wang
Es ist bekannt, dass der Titel Installierte JREs ist, aber der Pfad ist JDK, aber trotzdem funktioniert es danke
Abhijit Chakra
Es ist eine gute Idee, die JRE nach dem Hinzufügen des JDK zu entfernen. Manchmal verwendet Eclipse die JRE trotzdem weiter - keine Ahnung, warum dies der Fall ist. Es hilft, das JDK zur einzigen verfügbaren Option zu machen. :)
Leftbit
126
  1. Setzen Sie die JAVA_HOMEUmgebungsvariable auf den JDK-Stammordner - erforderlich, wenn Sie die Befehlszeile oder maven ( mvn) ausführen .
    • (Suche in Google JAVA_HOMEnach weiteren Informationen)
  2. Wählen Sie in den Projekteigenschaften im Abschnitt Java Compiler das erforderliche JDK aus - wenn Sie direkt von Eclipse aus ausführen
msangel
quelle
Warum ist Schritt 1 erforderlich?
Duncan Jones
2
@ DuncanJones, erstens ist erforderlich, wenn Sie Befehlszeile oder Maven ausführen (Google für diese Variable), zweitens - wenn Sie direkt von Eclipse
ausführen
1
Ich würde diese Informationen zu Ihrer Antwort hinzufügen. Andernfalls wird vorgeschlagen, dass in jedem Fall beide erforderlich sind.
Duncan Jones
10
Beachten Sie, dass JAVA_HOME nicht mit "bin" endet, sondern auf das Stammverzeichnis des JDK verweist .
Koppor
Benötigt dies für das Release-Plugin, da es nicht die JRE-Einstellungen von Eclipse verwendet (mit externer Maven-Installation) ...
Rob
124

Für mich hat nichts funktioniert, bis ich diese Änderung an meiner pom.xml vorgenommen habe:

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>

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:

-vm
C:\Program Files\Java\jdk1.7.0_45\bin\javaw.exe

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.

ksnortum
quelle
10
Diese Lösung sollte als letztes Mittel implementiert werden, da das Projekt selbst so geändert wird, dass es an Ihre aktuelle Entwicklungsmaschine gekoppelt wird.
Xtreme Biker
@ksnortum danke! Dies ist das einzige, was es für mich funktioniert hat.
Antony Fuentes Artavia
Was ist mit uns Linux-Leuten hier?
Logicbloke
Ich vermute, es ist ziemlich dasselbe, außer dass die ausführbare Datei / path / to / java / bin / javac wäre. Versuchen Sie vielleicht "welches Java", um Ihren Java-Pfad zu finden.
ksnortum
41

In meinem Fall wurde dies folgendermaßen gelöst:

Gehen Sie zu Ihrer 'Laufzeitkonfiguration' und konfigurieren Sie Ihre JRE für ein JDK.

Wählen Sie das richtige JDK für Ihre Laufzeit

Wählen Sie die Standard-JRE

Ich habe die Antwort kopiert, nur für den Fall, dass sie aus irgendeinem Grund gelöscht wird, aber die Quelle ist hier

Eduardo Dennis
quelle
Das hat bei mir funktioniert. Wenn JDK nicht in der Dropdown-Liste Alternative JRE angezeigt wird, müssen Sie Installierte JRE hinzufügen (Navigieren Sie zu dem Ordner, in dem JDK installiert ist) und den JDK-Ordner auswählen.
Atul
Das war mein Problem, danke für deine Antwort, es wurde gelöst.
Amr Afifi
38

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 Configurationsund wählte das aus, das Maven Buildich gerade ausführte (im linken Bereich). Dann habe ich auf die JRERegisterkarte geklickt und die Option ausgewähltWorkspace default JRE

jlars62
quelle
1
Dies scheint notwendig zu sein, um zusätzlich zu der oben ausgewählten Antwort zu prüfen.
Nsandersen
1
Diese Lösung gefällt mir besser, da Sie dadurch die Standard-Java-Version für andere Projekte nicht ändern können.
Gonen I
30

Gehen Sie zu Windows -> Einstellungen -> Java -> Installierte JREs

Möglicherweise ist jre bereits hinzugefügt Geben Sie hier die Bildbeschreibung ein

Klicken Sie auf Hinzufügen -> Standard-VM -> Weiter -> Verzeichnis

und suchen Sie nach dem JDK in meinem Fall Pfad war C:\Program Files\Java\jdk1.8.0_111

Klicken Sie dann auf Fertig stellen.

Sie werden ein Fenster wie dieses sehenGeben Sie hier die Bildbeschreibung ein

Wählen Sie JDK -> Übernehmen -> Ok

Und du bist fertig.

GauRang Omar
quelle
1
Vielen Dank, dass Sie den JDK-Pfad geteilt haben. Es schien, als könnten die Leute eine andere Option wählen, um auf JDK zu klicken, wenn ich nur JRE von Anfang an angezeigt hatte. Ich habe JDK über den von Ihnen angegebenen Pfad hinzugefügt.
In-Young Choung
19

Ich habe das gleiche Problem und füge JAVA_HOMEnur Umgebungsvariablen hinzu .

env var

  • Wenn Sie Eclipse verwenden, verweisen Sie einfach lesen https://stackoverflow.com/a/21279068/6097074
  • Wenn Sie Intellij verwenden, müssen Sie direkt nach dem Hinzufügen der JAVA_HOMEEingabeaufforderung aus dem Projektverzeichnis öffnen und ausführen mvn clean install(verwenden Sie das Intellij-Terminal nicht).
Ankit
quelle
14

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:

  1. Öffnen Sie die projektspezifischen Bibliotheken des Java-Erstellungspfads: Klicken Sie mit der rechten Maustaste auf "Projekt> Erstellungspfad> Erstellungspfad konfigurieren ..." und wählen Sie die Registerkarte "Bibliotheken".
  2. Wählen Sie den Eintrag "JRE System Library" und klicken Sie auf "Remove".
  3. Klicken Sie auf "Bibliothek hinzufügen ...".
  4. Ein Assistent wird angezeigt. Wählen Sie "JRE System Library" und klicken Sie auf "Next>".
  5. Wählen Sie nun das richtige JDK aus (in meinem Fall "Workspace Standard-JRE", das ich mit einem JDK konfiguriert habe).
  6. Schließen Sie den Assistenten, indem Sie auf "Fertig stellen" klicken.
  7. Schließen Sie den Dialog "Eigenschaften", indem Sie auf "OK" klicken.
Sir Hackalot
quelle
1
Ich habe alle oben von @ishu erwähnten Optionen ausprobiert, erhalte aber immer noch org.apache.maven.lifecycle.LifecycleExecutionException: Das Ziel org.apache.maven.plugins konnte nicht ausgeführt werden: maven-compiler-plugin: 3.1: compile (default-compile) im Projekt hibernateTest1: Kompilierungsfehler, dann habe ich Ihre Lösung ausprobiert, aber keine Fehleränderung ... Bitte helfen Sie mir.
Namrata Choudhary
Fügen Sie <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.xml
Alekya
11

Eine 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.

Brunoais
quelle
Das war es für mich. Komisch ist, dass ich manchmal Fehler bekomme, dass die Standard-JRE fälschlicherweise auf ein JDK verweist.
Salsero69
hat für mich gearbeitet, ich möchte maven clean install compile machen
asifaftab87
10

Wenn Sie den MavenBefehl von cmdausführen, stellen Sie sicher, dass Sie den JDK-Pfad festgelegt haben, bevor Sie den Befehl ausführen. In meinem Fall habe ich eine .batDatei erstellt, die Folgendes enthält:

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60
start cmd.exe /k "cd c:\aem_proj\sis\aau"
Mahder
quelle
8

Beim Versuch, eine JAR-Datei meiner Projektanwendung mit zu erstellen, mvn clean installtrat 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 ";" .

Geben Sie hier die Bildbeschreibung ein

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.

Dhaval Simaria
quelle
6

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 Geben Sie hier die Bildbeschreibung ein 1) Arbeitsbereich-Standard-JRE wird über das Menü 'Fenster' oben festgelegt -> Einstellungen -> Java -> Installierte JREs - Hier können Sie Ihre hinzufügen jdk Geben Sie hier die Bildbeschreibung ein 2) Ausführungsumgebung jdk kann in pom.xml festgelegt werden, wie von @ksnortum erwähnt

<build>
<plugins>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <fork>true</fork>
            <executable>C:\Program Files\Java\jdk1.7.0_45\bin\javac.exe</executable>
        </configuration>
    </plugin>
</plugins>

3) Alternative JRE kann verwendet werden, um ein JDK aus Ihrem Verzeichnis auszuwählen

manntsheth
quelle
5

Für mich befand sich die JRE in der Umgebungsvariablen PATH vor dem JDK-Pfad

  1. C: \ ProgramData \ Oracle \ Java \ javapath
  2. C: \ env \ jdk1.8.0_151 \ bin

Also habe ich 1 entfernt. Wahrscheinlich würde ein Austausch sie auch beheben.

Florin D.
quelle
5

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

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Krishna Rajagopalan
quelle
5

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:

  1. C: \ Programme \ Java \ jdk1.8.0_202 \ bin

  2. C: \ Programme \ apache-maven-3.6.0 \ bin

Navdeep Ghotra
quelle
3

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.

Sam
quelle
3

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.

Geben Sie hier die Bildbeschreibung ein

Vero J.
quelle
2

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...

  1. Deinstallieren Sie alle Java-Versionen von Ihrem Computer
  2. Installieren Sie JDK8 von hier aus: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  3. 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/

  4. Starten Sie Eclipse neu und genießen Sie! (Zumindest habe ich das getan)

In der Hoffnung, dass dies einem armen Wanderer Ärger erspart.

JustNatural
quelle
2

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.

Raja
quelle
2

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 ):

  • Klicken Sie mit der rechten Maustaste auf Projekt -> Eigenschaften
  • Wählen Sie Java Build Path
  • Wählen Sie die JRE-Systembibliothek aus
  • Klicken Sie auf Bearbeiten
  • Wählen Sie in der Ausführungsumgebung ein JDK aus

Geben Sie hier die Bildbeschreibung ein

  • Klicken Sie auf Fertig stellen
  • bauen und laufen
Emile Maras
quelle
2

Die Frage bezieht sich zwar auf den Fehler beim EclipseSetup, aber eine Antwort auf die Behebung dieses Fehlers mit IntelliJund 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 JDKfür Importerwie unten gezeigtJAVA_HOME

Geben Sie hier die Bildbeschreibung ein

Auch JAVA_HOMEgesetzt werden sollte JDKPfad auf Umgebungsvariablen -> Systemvariablen und fügen Sie auch %JAVA_HOME%\binauf dem Weg Systemvariablen

Nafeez Quraishi
quelle
1

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

Sapna
quelle
1

Ich habe die folgende Änderung vorgenommen und es hat bei mir funktioniert. Ich hoffe, es hilft jemandem.Geben Sie hier die Bildbeschreibung ein

Kunal Khaire
quelle
1

Versuche dies.

<build>
...
    <plugins>
    ...
        <plugin>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.1</version>
            <configuration>
                <fork>true</fork>
                <executable> path to jdk \bin\javac.exe</executable>
            </configuration>
        </plugin>
    </plugins>
</build>
Wagh
quelle
1

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

Ishan Ojha
quelle
1

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 \

Parthiban
quelle
0

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.

Ad infinitum
quelle
0

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:

  1. Klicken Sie mit der rechten Maustaste auf das Jave EE-Projekt -> klicken Sie auf Eigenschaften -> klicken Sie auf Deployment Assembly

  2. 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

  3. 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.

S Kumar
quelle