it-swarm.com.de

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

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 aber 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?
564
Sai prateek
  1. Gehen Sie auf Ihrer Eclipse-IDE in das Fenster > Einstellungen > Java > Installierte JREs > und überprüfen Sie Ihre installierte JREs . Sie sollten dort einen Eintrag mit einem JDK haben.
  2. Wählen Sie die Ausführungsumgebung wie unten gezeigt. Klicken Sie auf OK
  3. Dann Klicken Sie 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 Run -> Run Configurations 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 Standard-JRE für den Arbeitsbereich ausgewählt

enter image description here

883
jaipster

Für mich ist es genau das, was der Eclipse-Riese beklagt

enter image description here

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

130
Thai Tran

Bei mir 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>

Sonstige 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 dieser Datei zur Eclipse.ini:

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

Letztendlich habe ich m2e nie in einem JDK ausführen lassen, aber das explizite Setzen des Compilers Java (wie oben) hat den Trick getan.

114
ksnortum
  1. Setzen Sie die Umgebungsvariable Java_HOME auf den JDK-Stammordner - erforderlich, wenn Sie eine Befehlszeile oder einen Maven ausführen (mvn).
    • (Durchsuchen Sie Google nach Java_HOME, um weitere Informationen zu erhalten.)
  2. Wählen Sie in den Projekteigenschaften in Abschnitt Java Compiler das erforderliche JDK aus - wenn Sie direkt in Eclipse ausgeführt werden
100
msangel

Ich habe diesen Fehler erhalten, als ich versucht habe, einen Maven-Build aus Eclipse heraus zu erstellen.

Für mich ging die Antwort auf Run -> Run Configurations und wählte den Maven Build aus, den ich ausgeführt habe (im linken Bereich). Dann klickte ich auf die Registerkarte JRE und wählte die Option Workspace default JRE

36
jlars62

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

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

Select the right JDK for your Runtime

Select default JRE

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

36
Eduardo Dennis

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

kann sein, dass jre bereits hinzugefügt ist enter image description here

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 Fenster wie folgt sehen enter image description here

wählen Sie JDK -> Apply -> Ok

Und du bist fertig.

29
GauRang Omar

Ich habe versucht, alle oben genannten, jedoch immer noch die gleiche Fehlermeldung.

In meinem Fall wurde eine tatsächliche JRE fälschlicherweise als JRE-Systembibliothek im projektspezifischen Erstellungspfad verwendet, wodurch offensichtlich alle anderen hier beschriebenen Einstellungen außer Kraft gesetzt wurden.

Wenn dies in Ihrem Fall der Fall ist, versuchen Sie Folgendes:

  1. Öffnen Sie die projektspezifischen Bibliotheken von Java Build Path: Klicken Sie mit der rechten Maustaste auf "Project> Build Path> Configure Build Path ..." und wählen Sie die Registerkarte "Libraries".
  2. Wählen Sie den Eintrag "JRE System Library" und klicken Sie auf "Entfernen".
  3. Klicken Sie auf "Bibliothek hinzufügen ...".
  4. Ein Assistent erscheint. Wählen Sie "JRE System Library" und klicken Sie auf "Weiter>".
  5. Wählen Sie nun das richtige JDK aus (in meinem Fall "Workspace default JRE", das ich mit einem JDK konfiguriert habe).
  6. Schließen Sie den Assistenten mit "Fertig stellen".
  7. Schließen Sie den "Eigenschaften" -Dialog mit "OK".
13
Sir Hackalot

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

env var

  • Wenn Sie Eclipse verwenden, lesen Sie einfach https://stackoverflow.com/a/21279068/6097074
  • Wenn Sie intellij verwenden, öffnen Sie kurz nach dem Hinzufügen von Java_HOME die Eingabeaufforderung aus dem Projektverzeichnis und führen Sie mvn clean install aus (verwenden Sie kein intellij-Terminal).
12
ankit

Eine Alternative, wenn die Antwort von jaipster nicht funktioniert, ist:
Fenster> Einstellungen> Java> Installierte JREs

Bearbeiten Sie anschließend die JRE so, dass sie auf die JDK und nicht auf die JRE verweist (die JRE-Startseite, die im JRE-Paketeditor abgelegt wurde).

Das hat bei mir geklappt.

9
brunoais

Wenn Sie den Befehl Maven in cmd ausführen, stellen Sie sicher, dass Sie den Pfad jdk festgelegt haben, bevor Sie den Befehl ausführen. In meinem Fall habe ich eine .bat -Datei 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"
8
Mahder

Ich hatte das gleiche Problem beim Versuch, eine JAR-Datei meiner Projektanwendung mit mvn clean install zu erstellen, obwohl die Anwendung unter Eclipse einwandfrei funktionierte.

Das Problem war in der Tat zu naiv, dass ich die Umgebungsvariable Java_HOME nicht gesetzt hatte. Ich musste lediglich die Umgebungsvariable Java_HOME auf das JDK-Verzeichnis setzen. Stellen Sie sicher, dass dies nicht vor "\ bin" und ohne Semikolon ";" erfolgt.

enter image description here

Wie ich es verstanden habe, ist wie folgt:

Die Anwendung funktionierte in Eclipse einwandfrei, da sich JRE-Systembibliothek auf JRE innerhalb des JDK-Ordners anstelle des externen JRE-Ordners ohne JDK bezog. [Wie in anderen Antworten sehr gut erklärt]

Diese Konfiguration gilt nicht für den Befehl maven , den wir auf 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.

7
Dhaval Simaria

Es sind mehrere Optionen anzugeben.

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. Das Fenster wird unten als gegebener Schnappschuss angezeigt. Klicken Sie dort auf die Registerkarte JRE.

Sie sehen, dass Sie 3 Optionen haben 1) Standard-JRE für den Arbeitsbereich 2) Ausführungsumgebung 3) Alternatives JRE enter image description here 1) Workspace Default JRE wird über das 'Window'-Menü oben eingestellt -> Preferences -> Java -> Installed JREs - Hier können Sie Ihr jdk hinzufügen enter image description here 2) Ausführungsumgebung jdk kann wie von @ksnortum erwähnt in pom.xml eingestellt werden

<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) Alternatives JRE kann verwendet werden, um ein JDK aus Ihrem Verzeichnis auszuwählen

6
manntsheth

Für mich war 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 das Vertauschen auch das Problem beheben.

4
Florin D

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 die JRE deaktiviert. Dann überprüfte JDK. Dann habe ich die POM-Datei mit Run Configurations ausgeführt. Wählen Sie die Registerkarte JRE und wählen Sie die Option "Workspace Default ...". Hier sind die Bilder

enter image description here

enter image description here

4

Problemstellung = In dieser Umgebung ist kein Compiler vorhanden. Vielleicht laufen Sie eher auf einer JRE als auf einem JDK? intellij

Lösung

Bitte setzen Sie die mgebungsvariable e wie unten, um das Problem zu lösen

Variablenname: Java_HOME

Variablenwert: C:\Programme\Java\jdk1.8.0_202

Variablenname: M2_HOME

Variablenwert: C:\Programme\Apache-maven-3.6.0

Darüber hinaus, Java und maven-Pfad in "Systemvariablen" wie folgt hinzufügen:

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

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

3
Navdeep Ghotra

Ich habe eine Lösung.

Die gebräuchlichste Lösung für dieses Problem besteht darin, jdk location als meine installierten JREs zu ändern. ) anstelle des JRE-Speicherorts , aber das hat mein Problem dieses Mal 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 Registerkarte Ausführungsumgebungen .

Klicken Sie auf Ihre bevorzugte Ausführungsumgebung. In meinem Fall war es JAVASE-1.8 . Dort zeigt es 2 Möglichkeiten. JDK und JRE . Wählen Sie dort JDK und das Problem ist gelöst.

enter image description here

3
Vero J

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, sie hinzuzufügen, da keine der anderen Antworten zutraf, da ich diese Einstellungen bereits richtig vorgenommen 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 aufgefordert, ein Verzeichnis anzugeben, in das die JRE installiert werden soll. Standardmäßig lautet das Verzeichnis 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 beeilte mich und dachte, das Installationsprogramm stelle mir zweimal die gleiche Frage. Setzen Sie sowohl die JDK- als auch die JRE-Installationsposition 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 all meinen Maven-Builds gemeldet hat.

3
Sam

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. Möglicherweise verwenden Sie eine JRE anstelle eines JDK?

Ich habe hier gelesen, dass ich eine neue Systemvariable namens Java_HOME erstellen und sie auf den Installationsordner von jdk 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 ...

Das Problem ist also, dass Sie Java SE Development Kit 8 installieren! Ich habe 9 verwendet und dachte, wenn es das ist spätestens muss es besser sein ...

Sowieso...

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

  3. Definieren Sie dann das Java_HOME-Systemumgebungs-Lernprogramm hier: https://docs.Oracle.com/cd/E19509-01/820-3208/inst_cli_jdk_javahome_t/

  4. Eclipse neu starten und genießen! (zumindest habe ich das getan)

Die Hoffnung, dass dies einem armen Wanderer Ärger erspart.

2
JustNatural

In meinem Fall hatte ich Systemvariablen Pfad hat "C:\ProgramData\Oracle\Java\Javapath" Speicherort.

In "C:\ProgramData\Oracle\Java\javapath" Java, nur dort javaw. Also bekomme ich den gleichen Fehler.

Nachdem ich alle Dateien im Ordner "C:\ProgramData\Oracle\Java\javapath" entfernt hatte, wurde mein Fehler behoben.

2
Raja

Beim Erstellen einer neuen EC2-Ubuntu-16.04-Instanz mit Java wurde derselbe Fehler angezeigt. Beim Ausführen von mvn clean package trat dieses Problem auf, und die folgende Lösung funktionierte für mich.

Wenn Sie auf einem Ubuntu-Server arbeiten, können Sie erneut versuchen, Java zu installieren. Verwenden Sie dazu diese Antwort So installieren Sie das JDK unter Ubuntu Linux

1
Ishan Ojha

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>
1
Wagh

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

1
Lrodriguez84

ich hatte das gleiche Problem. Der Fehler, den ich gemacht habe, war, dass ich jre path nur in path var und nicht in jdk path hinzugefügt habe

1
Sapna

Ich habe die folgende Änderung vorgenommen und es hat bei mir funktioniert. Hoffentlich hilft es jemandem. enter image description here

1
Kunal Khaire

Die meisten Antworten habe ich erfolglos ausprobiert. Was bei mir funktioniert hat, war (nachdem ich https://stackoverflow.com/a/21279068/240889 ):

  • rechtsklick 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

enter image description here

  • klicken Sie auf Fertig stellen
  • bauen und laufen
0
Emile Maras

Die Frage bezieht sich zwar auf den Fehler bei der Installation von Eclipse, es kann jedoch hilfreich sein, diesen Fehler bei der Installation von IntelliJ und Windows 10 zu beheben.

1 . Gehe zu File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven -> Importing

2 . Setzen Sie JDK für Importer wie unten gezeigt auf Java_HOME

enter image description here

Außerdem sollte Java_HOME unter Umgebungsvariablen -> Systemvariablen auf JDK path gesetzt werden und %Java_HOME%\bin zu Pfadsystemvariablen hinzugefügt werden

0
Nafeez Quraishi

Zusätzlich zu der obigen Antwort könnte ich sagen, dass Sie versuchen, Maven vom Terminal aus (außerhalb von Eclipse) auszuführen. Auf diese Weise können Sie verstehen, dass das Problem in Eclipse auftreten sollte, wenn es von außen erstellt wird, jedoch nicht in Eclipse.

0
Ad Infinitum

Es gibt mehrere Antworten zu dieser Frage, aber alle beziehen sich auf die Konfiguration des richtigen Pfades von JDK, aber nur mit JRE können wir dieses Problem lösen.

Sie müssen lediglich Deployment Assembly verwenden, um den Pfad der gepackten War-Datei des EE-Projekts Java zu konfigurieren und anschließend 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 Bereitstellungsassembly

  2. Klicken Sie auf die Schaltfläche Hinzufügen -> Klicken Sie auf Archive aus dem Dateisystem -> Klicken Sie auf Weiter -> Klicken Sie auf Hinzufügen -> Wechseln Sie in das Verzeichnis .m2\respository und suchen Sie nach der generierten War-Datei -> Wählen Sie die War-Datei aus -> 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 Install

Dadurch wird Ihr Projekt erfolgreich erstellt, ohne dass ein Compilerfehler auftritt.

Hoffe das löst das Problem ohne JDK.

0
S Kumar

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.

hier müssen wir JRE zwingend entfernen, anstatt nur das Häkchen zu entfernen.

0
Monika

Vermissen Sie einen Maven Build?.

Abgesehen von den obigen JRE-Änderungen. Ich hatte immer noch ein ähnliches Problem. Mir fehlte die JUnit-Abhängigkeit, nachdem ich sie hinzugefügt hatte.

Hoffe das wird helfen.

0