2013-03-22 6 views
33

ich eine Maven Eclipse-Anwendung, die ich versuche, über die Eingabeaufforderung führen Sie den folgenden Befehl:Nicht unterstützte major.minor Version 51.0, aber alles ist auf JDK 1.6

java -cp target/classes;"target/dependency/*" com.example.Main 

Leider wirft ein Fehler:

UnsupportedClassVersionError : unsupported major.minor version 51.0 

habe ich einige graben und fand heraus, es hat etwas mit der Anwendung zu tun auf einem JDK einer neueren Version kompiliert wird, als die JRE es läuft. Offenbar ist die 51 Mittel wurde für 1,7 gebaut, aber ich habe kein JDK 7 auf meinem Computer ...

Also machte ich sicher, dass alles auf die Version eingestellt ist 1,6:

system.properties Datei in die Wurzel enthält

java.runtime.version=1.6 

hinzugefügt, um die maven Eigenschaft

<java.version>1.6</java.version> 

die maven Compiler-Plugin in meinem pom.xml angegeben

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <version>2.1</version> 
    <configuration> 
     <source>1.6</source> 
     <target>1.6</target> 
    </configuration> 
</plugin> 

überprüfte ich die Version meiner java den Befehl java -version verwendet, die nach dem Einstellen der Maven-Compiler-Plugin führte in Eclipse

Java version "1.6.0_38" 
Java(TM) SE Runtime Environment (build 1.6.0_38-b05) 
Java HotSpot(TM) 64-bit Server VM (build 20.13-b02, mixed mode) 

Und ein Update meines Projekts zurück automatisch den Compiler Pegeleinstellung bis 1.6, die Projektfacet-Ebene auf 1.6 und das Hinzufügen der JavaSE-1.6 jre Systembibliothek zu meinem Projekt.

Also ich habe absolut keine Ahnung wo dieses JDK 1.7 herkommt. Ich habe nie installiert JDK 1.7 auf diesem Computer zu beginnen mit ...

Auch ursprünglich war das Maven-Compiler-Plugin nicht vorhanden, so dass es mit 1,5 gebaut wurde, nehme ich an. Aber ich habe eine mvn clean install, dann eine mvn package, und versuchte dann den Befehl erneut, nachdem alle Einstellungen angepasst wurden und es immer noch den gleichen Fehler wirft.

+0

Sie sind definitiv etwas fehlt. Überprüfen Sie Ihre Java-Version erneut. Überprüfen Sie in der Eingabeaufforderung: 'java -version' und' javac -version' –

+5

Vielleicht benötigt eine Abhängigkeit Java 1.7 – Adrian

+0

Java-Version und JavaC-Version beide zurück 1.6.0_38, aber ich kompilieren nicht wirklich mit der Eingabeaufforderung. Ich benutze es nur, um meine App zu starten. Ich kompiliere mit Maven, und dort benutze ich den Maven Plugn. –

Antwort

44

Wahrscheinlich haben Sie eine Abhängigkeit, die Java benötigt 1.7

14

Sie verwenden wahrscheinlich eine Abhängigkeit, die Java SE 7.

erfordert Wenn dies der Fall ist entweder ein Upgrade auf Java SE 7 (empfohlen, wenn Sie die JRE von Oracle ohne Support-Vertrag verwenden, wie Java SE 6 erreichte Ende des Lebens im Februar) oder ersetze diese Abhängigkeit.

+7

Ja, es war Jetty 9. Ich kann nicht auf JDK 7 upgraden, aber ich habe Jetty 8 heruntergestuft, was auch den Job erledigt. –

+0

Wie haben Sie die Jetty-Version heruntergestuft? –

+0

@ m.dorian mit früheren Versionen von Anlegesteg –

Verwandte Themen