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.
java
maven
unsupported-class-version
Hassan Syyid
quelle
quelle
Antworten:
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.
quelle
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.
quelle
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.
quelle
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
quelle
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 /
quelle
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"
quelle
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.
quelle