webentwicklung-frage-antwort-db.com.de

Maven Kann den Javac-Compiler nicht finden in:

Wenn ich versuche, eine Kriegsdatei zu generieren, werden einige Fehler angezeigt 

[ERROR] Unable to locate the Javac Compiler in:
[ERROR] C:\Program Files\Java\jre7\..\lib\tools.jar

Wenn ich echo %path% mache, 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 echo %JDK_HOME% tue

D:\name\name\core Java\software\Java\Java_1.6.0_04_win\jdk1.6.0_04\bin

Ich weiß nicht, warum maven sich auf jre bezieht, wenn meine Umgebungsvariable jdk ist. Ich habe auch die installierte JRE in jdk1.6 geändert.

72
BKK

Nur in Eclipse-Setup  

Es hat 4 Schritte TODO.

Schritt 1: Klicken Sie mit der rechten Maustaste auf Eclipse-Projekteigenschaften

Schritt 2: Java Build Path -> Bibliotheken

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

Schritt 4: Bearbeiten Sie JRE als Set JRE Home = Java_HOME

ScreentShot:

enter image description here

148
Parthasarathy B

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 folgende Änderung vor:

C:\Programme\Java\jdk1.6.0_04\jre oder C:\Programme\Java\jdk1.6.0_04 anstelle des Standardverzeichnisses C:\Programme\Java\jre7

35

Hatte das gleiche Problem, aber in meinem Fall wies das Verzeichnis Eclipse darauf hin, dass das JRE das JDK war. Also habe ich nach dem tools.jar gesucht und war dort.

Ich tat 

  • Java Build Path >> Bibliotheken
  • JRE System Lybrary >> Bearbeiten
  • Installierte JREs >> klicken Sie auf mein Jdk >> Bearbeiten
  • Externe Gläser hinzufügen >> tools.jar

Und dann gut kompiliert

4
Hinotori

Es war ein Eclipse-Problem. Als ich versuchte, es von der Kommandozeile aus mit zu bauen 

mvn package

es hat gut funktioniert.

3
BKK

Die Variable JDK_HOME sollte immer auf das Basisverzeichnis von 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 

C:\Windows\System32;D:\name\name1\Softwares\Maven\Apache-maven-3.0.4\bin;C:\Program Files\Notepad++\;%JDK_HOME%\bin
2
Bruno Penteado

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

Es klingt, als hätten Sie JDK_HOME als Benutzervariable definiert und PATH als Systemvariable definiert oder umgekehrt - echo %PATH% sollte keine nicht aufgelösten Variablen wie ...;%JDK_HOME% enthalten.

Stellen Sie sicher, dass sich der Pfad %JDK_HOME%\bin in Ihrer PATH-Variablen befindet und nicht aufgelöst ist, selbst wenn Sie den Pfad explizit angeben müssen.

2
matt b

Das 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 weiteres Verzeichnis mit der tools.jar-Datei lib/tools.jar hinzufügen - es löst auch dieses Problem.

0
Bolek

Ich kann folgende Schritte ausführen:

Klicken Sie mit der rechten Maustaste auf das Projekt, und wählen Sie Build-Pfad -> Build-Pfad konfigurieren -> Wählen Sie die Registerkarte Libraries -> und dann JRE System Library [Version Sie Habe für mich JavaSE-1.7] -> klicke auf die Schaltfläche Bearbeiten -> Im JRE-System Bibliotheksfenster wählen Ausführungsumgebung - In Dropdown können Sie Wählen Sie das für mich aufgelistete JDK JavaSE-1.7 aus -> neben diesem Klick auf Schaltfläche Environments -> Im Fenster Execution Environments müssen Sie Wählen Sie erneut Ihr Java SE für mich JavaSE-1.7 -> Wählen Sie es einfach aus, Sie enthält Optionen auf der Registerkarte Kompatible JREs, wählen Sie das gewünschte JDK aus in meinem Fall jdk1.7.0_25 haben.


Klicken Sie auf OK und beenden Sie die restlichen Fenster, indem Sie die entsprechende Aktion ausführen Ok/Fertig. 

Zuletzt Maven Clean und Maven Install.

0
Indrajeet Gour

Obwohl oben für diese Frage einige Nicht-Eclipse-Antworten zu finden sind, die Eclipse nicht erwähnen, 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.

0
Colin McRae

Ich bin auf ein ähnliches Problem gestoßen, und da niemand einen ähnlichen Ansatz wie ich postete, bin ich hier.

Navigieren Sie zu der Laufkonfiguration, die Sie starten möchten.
Dort wurde die Registerkarte JRE gewählt. Passen Sie dort die "Laufzeit-JRE" an und Sie können loslegen.

0
Vogel612

Wenn Sie alle obigen Schritte ausführen, die möglicherweise verwirrt sind und unser Problem nur die Datei tools.jre vermisst, fügen Sie einfach tools.jre durch die folgenden Schritte hinzu und das Problem ist gelöst.

Schritt 1: In Eclipse gehen Sie zu Windows -> Voreinstellungen

Schritt 2: Java -> Installierte JREs (Doppelklick darauf)

Schritt 3: Klicken Sie auf die Schaltfläche Bearbeiten -> Klicken Sie auf Externe JARs hinzufügen

Schritt 4: Wählen Sie jetzt den Pfad tools.jar aus 

jetzt Änderungen anwenden und es funktioniert gut.

Hier ist Screenshoot

0
Ravindra

Keine der aktuellen Antworten hat mir hier weitergeholfen. 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 bei der Installation von Java festgestellt wurde, dass es sich um eine JRE-Installation handelt. Es wird erwartet, dass es JDK-Zeug gibt oben das JRE-Unterverzeichnis, daher der ../lib im Pfad. Unser tools.jar ist in $Java_HOME/lib/tools.jar nicht in $Java_HOME/../lib/tools.jar.

Leider haben wir keine Möglichkeit, ein JDK auf unserem Betriebssystem zu installieren (fragen Sie nicht), sodass dies keine Option war. Ich habe das Problem behoben, indem ich dem Maven pom.xml Folgendes hinzugefügt habe:

  <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 Sie die ausführbare Datei an die richtige Stelle zeigen, haben Sie zumindest unsere Kompilierungsfehler überwunden.

0
Gray

Ich habe alle oben genannten Vorschläge ausprobiert, die für mich nicht funktionierten, aber ich fand, wie ich den Fehler in meinem Fall beheben konnte.

Die folgenden Schritte haben das Projekt erfolgreich kompiliert:

Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf 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 die JRE-Systembibliothek aus. Klicken Sie auf "Weiter". Wählen Sie das Optionsfeld "Alternative JRE" aus. Klicken Sie auf "installierte JREs". Wählen Sie die JRE mit der richtigen Version aus. Klicken Sie auf Appy und schließen Sie. Klicken Sie im nächsten Bildschirm auf Fertig stellen ..__ Klicken Sie im Eigenschaftenfenster auf Übernehmen und schließen Sie ..__ Klicken Sie im Projekt-Explorer mit der rechten Maustaste auf Ihre pom.xml und wählen Sie Ausführen als> Maven Build.__Im Zieltextfeld , schreib "install". Klicken Sie auf Ausführen.

Dies hat den Projektaufbau in meinem Fall erfolgreich gemacht.

0
FunkyFeudalFox

In Eclipse werden Aktionen wie das Importieren von Maven-Projekten oder das Aufrufen von "Update-Quellen" in derselben JVM ausgeführt, in der Eclipse ausgeführt wird. Wenn diese JVM von einer JRE stammt, die nicht Teil des JDK ist, gibt es keinen Java-Compiler (die tools.jar).

Um Maven aus Eclipse heraus zu starten, muss auch JRE, das für den Start verwendet wurde, von JDK stammen. Standardmäßig registriert Eclipse JRE, in dem es gestartet wird. Dies kann jedoch auf der Einstellungsseite "Fenster/Vorgaben .../Java/Installierte JREs" konfiguriert werden, wie oben von Parthasarathy erwähnt 

Alternativ können Sie compilerId in der Datei pom.xml angeben, sodass 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>
0
san1deep2set3hi