2014-10-11 5 views
29

Ich habe noch nie mit Maven vor, und ich bin nach den Anweisungen here. Wenn ich den BefehlMaven-Fehler: Vielleicht laufen Sie auf einer JRE und nicht auf einem JDK?

mvn integration-test -Pamp-to-war 
arbeitete

Es zunächst eine ganze Reihe von Abhängigkeiten heruntergeladen haben, und am Ende ist es zeigte,

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 

Ich bin auf Ubuntu 13.04.

Wenn es etwas gibt, das ich Ihnen sagen soll, lassen Sie es mich wissen. Vielen Dank.

EDIT

Als ich echo $JAVA_HOME bekomme ich /usr/lib/jvm/java-7-openjdk-i386/

Als ich mvn -version tun

ich,

Apache Maven 3.0.4 
Maven home: /usr/share/maven 
Java version: 1.7.0_25, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix" 

Auch ich aus this problem faced by someone else gefunden. Aber ich bin mir nicht sicher, wie ich mit der angegebenen Lösung verfahren soll.

Weitere Änderungen.

[email protected]:/usr/lib/jvm/java-7-openjdk-i386$ ls -l 
total 12 
drwxr-xr-x 2 root root 4096 Sep 9 10:44 bin 
lrwxrwxrwx 1 root root 41 Jul 4 2013 docs -> ../../../share/doc/openjdk-7-jre- headless 
drwxr-xr-x 5 root root 4096 Oct 13 2013 jre 
drwxr-xr-x 4 root root 4096 Oct 13 2013 man 
+2

Haben Sie JRE anstelle von JDK installiert? – Zavior

+0

Ich habe jdk. Wenn ich 'echo $ JAVA_HOME' ausspreche gibt es/usr/lib/jvm/java-7-openjdk-i386/ – Kraken

+0

@Zavior Bitte überprüfen Sie die Änderungen jetzt. Ich habe aktualisiert. – Kraken

Antwort

36

Offenbar erfordert es tools.jar-Datei im Ordner lib von meinem $ JAVA_HOME. Ich hatte nicht den Ordner lib, so neu installiert ich meine jdk mit dem Befehl

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib 

, auch this link may help some people.

3

Dies ist, wie ich

rechts clik auf das Projekt mein Problem behoben> Eigenschaften> Java-Compiler (Wählen Sie die, die Sie verwenden)

es war 1,5 für mich, aber ich habe 1,8 installiert. also änderte ich es auf 1,8 .. und voilla hat funktioniert !.

55

Ich habe das gleiche Problem mit Java 8 (Ubuntu 16.04) konfrontiert, versuchen, mit mvn Befehlszeile zu kompilieren.

Ich verifizierte meine $JAVA_HOME, java -version und mvn -version. Alles scheint in Ordnung zu sein und auf /usr/lib/jvm/java-8-openjdk-amd64 zu zeigen.

Es scheint, dass Java-8-openjdk-amd64 nicht vollständig standardmäßig installiert und enthält nur die JRE (trotz seines Namens „jdk“).

Neuinstallation des JDK hat den Trick gemacht.

sudo apt-get install openjdk-8-jdk 

Dann werden einige neue Dateien und neue Ordner hinzugefügt werden, um /usr/lib/jvm/java-8-openjdk-amd64 und mvn in der Lage, wieder zu kompilieren.

+0

Ich denke, das ist im Wesentlichen die gleiche Sache wie die akzeptierte Antwort - ohne JDK hätten Sie auch tools.jar nicht. – eis

5

Für mich funktionierte es wie folgt. Schauen Sie sich die Umgebungsvariable JAVA_HOME an, unabhängig davon, ob sie auf JRE oder JDK verweist. Wenn es JRE zeigte, werden Sie Gesicht „Vielleicht sind Sie mit auf eine JRE eher als ein JDK“ -Ausgabe.Wenn ja, ändern Sie den Pfad zu JDK.

Ändern so, es funktionierte für mich.

JAVA_HOME C: \ Programme \ Java \ jdk1.8.0_31

0

Recht auf Ihrem Projektordner klicken (Maven einer), wählen Sie Eigenschaften und aus dem Fenster Eigenschaften, wieder Java Compiler auswählen und sehen, was gegen ausgewählt ist Compiler Compliance-Level und stellen Sie sicher, dass es die gleiche Version wie Ihr jre ist. In meinem Fall hatte ich 1,8, aber 1,5 wurde gegen Compiler Compliance-Level ausgewählt. Nach der Auswahl von 1.8 war der Build ohne diesen Fehler erfolgreich.

3

Fügen Sie diese Konfigurationen in pom.xml

<project ...> 
    ... 
    <build> 
     ... 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
        <fork>true</fork> 
        <executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    ... 
</project> 
1

Überprüfen Sie, ob/usr/bin 'javac' hat. Wenn nicht, haben Sie installiert JRE & müssen jdk dev Version wie "java-1.8.0-openjdk-devel.x86_64"

0

Ich hatte den gleichen Fehler und mir fehlte die Benutzervariable: JAVA_HOME und der Wert für die SDK - "C: \ Programme \ Java \ jdk-9.0.1" in meinem Fall

0

Fügen Sie einfach weitere Details zur Einrichtung hinzu. Der Hauptgrund dafür wäre, dass das JAVA_HOME-Setup in der Umgebungsvariablen auf den korrekten JDK-Speicherort verweist.

  1. Check System -> Advance System Settings
  2. Klicken Sie auf Umgebungsvariable
  3. hinzufügen Variable JAVA_HOME -> "C: \ Programme \ Java \ jdk1.8.0_141;"
  4. "Pfad" bearbeiten ->% JAVA_HOME% anhängen; zum vorhandenen Text.
0

hatte ich das gleiche Problem nach dem java-1.8.0-openjdk Paket auf einem AWS Linux AMI installieren. Die falsche Annahme, die ich machte, war, dass, weil die Datei in openjdk endete, es die jdk-Version wäre. Das ist nicht der Fall.

Die openjdk install page erklärt alles klar.

Das Paket java-1.8.0-openjdk enthält nur die Java Runtime Umgebung. Wenn Sie Java-Programme entwickeln möchten, installieren Sie das Paket java-1.8.0-openjdk-devel.

Wenn Sie schon ein java-1.8.0-openjdk-Paket installiert haben, ist es nur verlassen und den JAVA_HOME Wert, wenn es für den JRE zu arbeiten und das java-1.8.0-openjdk-Entwickler-Paket yum install java-1.8.0-openjdk-devel -y mit installieren .

Verwandte Themen