Java 6 Nicht unterstützte major.minor Version 51.0


78

Ich habe kürzlich Java 8 deinstalliert, um Java 6 zu verwenden, da mein Code / meine Kreationen von mehr Personen als nur von Java 8 verwendet werden sollen. Wenn ich dies tue mvn - version, wird Folgendes zurückgegeben:

Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf(ClassRealm.java:401)
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:42)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:254)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:239)
    at org.codehaus.plexus.classworlds.launcher.Launcher.getMainClass(Launcher.java:144)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:266)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)

Wenn ich es tue java -version:

java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01, mixed mode)

Mit Java scheint alles in Ordnung zu sein, aber dies passiert auch, wenn ich versuche, ausführbare JARs auszuführen. Ich habe es umgangen, indem ich manuell java -jar (jar name) gemacht habe.


1
Welche Version von Maven verwenden Sie?
— John Ament

ist JAVA_HOME / bin / java -version druckt auch java version "1.6.0_45"?
— Bakterien

Verwenden Sie einfach Java 8 und kompilieren Sie mit 1.6-Kompatibilität

Java 6 ist sehr alt und wird seit einiger Zeit nicht mehr unterstützt. Ich würde davon abraten, es überhaupt zu benutzen. Wenn Sie die Kompatibilität erhöhen möchten, ist Java 7 der richtige Weg.
— Boris die Spinne

Antworten:


104

Laut der Maven-Website ist die letzte Version, die Java 6 unterstützt, 3.2.5, und 3.3 und höher verwenden Java 7. Meine Vermutung ist, dass Sie Maven 3.3 oder höher verwenden und entweder auf Java 7 aktualisieren (und die richtige Quelle festlegen sollten) / Zielattribute in Ihrem Pom) oder Downgrade-Maven.


1
Es war genau mein Problem. Ich habe kürzlich die Mars 2-Version von Eclipse für 64 Bit installiert und bei der Neuinstallation wurde die eingebettete Maven-Version anstelle meiner verwendet. Ich habe zwei Möglichkeiten ausprobiert: Die erste bestand darin, die JRE-Version des Projekts auf 1.8 zu ändern, und die zweite darin, die 1.6-JRE zuzulassen und die Maven-Version von der eingebetteten Version in meine lokale Installation zu ändern, und beide Optionen funktionierten
— Facepalmed

Wir verwenden JDE 1.8 und sehen genau dieses Problem.
— DrLou

13

Diese Versionsnummer (51.0) gibt an, dass Sie versuchen, für Java 7 kompilierte Klassen auszuführen. Sie müssen sie für Java 6 neu kompilieren.

Beachten Sie jedoch, dass einige Funktionen möglicherweise nicht mehr mit Java 6 kompatibel sind, das sehr alt ist und von Oracle nicht mehr (öffentlich) unterstützt wird.


6
Du bist lustig ... die meisten hier benutzen immer noch Java 6, Infact, sie sind gerade erst von Java 4 dort angekommen ... sind von 4 auf 6 gefahren! (und dein Kommentar ist vom letzten Jahr! :)
— VeenarM

5

Ich stand auch vor einem ähnlichen Problem. Ich könnte dies lösen, indem ich JAVA_HOME in der Umgebungsvariablen in Windows setze. Das Festlegen von JAVA_HOME in einer Batchdatei funktioniert in diesem Fall nicht.


2

Das Problem ist, dass Sie die JDK-Version nicht richtig eingestellt haben. Sie sollten JDK 7 für die Hauptnummer 51 verwenden. So:

JAVA_HOME = / usr / java / jdk1.7.0_79


2

Ich bin auf das gleiche Problem gestoßen. Ich verwende jdk 1.8 und maven 3.3.9. Nachdem ich JAVA_HOME exportiert habe, wurde dieser Fehler nicht angezeigt. export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.8.0_121.jdk / Contents / Home /


Ich habe die gleiche JRE und mvn, aber das hat nicht funktioniert, habe den gleichen Fehler bekommen
— user2568374

0

Ich stehe vor dem gleichen Problem und habe es gelöst, indem ich die Variable JAVA_HOME mit der aktualisierten Version von Java in meiner Ubuntu-Maschine (16.04) hinzugefügt habe. Wenn Sie "Apache Maven 3.3.9" verwenden, müssen Sie Ihr JAVA_HOME mit Java7 oder höher aktualisieren

Schritt dazu

1-sudo vim / etc / environment

2-JAVA_HOME = JAVA-Installationsverzeichnis (MyCase- / opt / dev / jdk1.7.0_45 /)

3-Run echo $ JAVA_HOME gibt den eingestellten Wert für JAVA_HOME an

4-Now mvn -version liefert die gewünschte Ausgabe

Apache Maven 3.3.9

Maven home: /usr/share/maven

Java version: 1.7.0_45, vendor: Oracle Corporation

Java home: /opt/dev/jdk1.7.0_45/jre

Default locale: en_US, platform encoding: UTF-8

OS name: "linux", version: "4.4.0-36-generic", arch: "amd64", family: "unix"

0

Fügen Sie jdk8 oder eine höhere Version unter JAVA_HOME und Pfad hinzu.

JAVA_HOME hinzufügen C: \ ProgramFiles \ Java \ jdk1.8.0_201 hinzufügen

Für Pfad =>

Fügen Sie% MAVEN_HOME% \ bin hinzu

und starten Sie schließlich Ihren PC neu.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.