Nicht unterstützter Major Minor Versionsfehler in Java
-
der Fehler
Nicht unterstützte Major.Minor-Version
in Java -
der Fehler
Nicht unterstützte Major.Minor-Version
im Eclipse-Projekt
Der Fehler Unsupported major.minor version
oder Java.lang.UnsupportedClassVersionError
tritt auf, weil während der Laufzeit ein niedrigeres JDK und während des Kompilierens ein höheres JDK vorhanden ist. Dieses Tutorial zeigt, wie man die Nicht unterstützte Major.Minor-Version
in Java löst.
der Fehler Nicht unterstützte Major.Minor-Version
in Java
Das JDK sollte während der Kompilierung und Laufzeit gleich sein, oder zumindest sollte das Kompilierungs-JDK nicht höher sein als das Laufzeit-JDK; Andernfalls wird der Fehler Java.lang.UnsupportedClassVersionError
oder Unsupported major.minor version
ausgegeben.
Versuchen wir ein Beispiel, das diesen Fehler auslöst, weil wir Java 1.8 zum Kompilieren und 1.7 zum Ausführen verwenden. Siehe Beispiel:
public class Unsupported_Version_Error {
public static void main(String args[]) {
System.out.println("Hello this is Delftstack.com");
}
}
Der obige Code löst die Ausnahme einer nicht unterstützten Version aus, wie unten gezeigt.
Exception in thread "main" java.lang.UnsupportedClassVersionError: Unsupported_Version_Error : Unsupported major.minor version 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)
Die Ausgabe zeigt den Fehler, da der Code mit Java 1.8 kompiliert und mit Java 1.7 ausgeführt wird. da Major version 52
Java SE 8 bezeichnet, wird der Fehler Unsupported major.minor version 52.0
ausgegeben.
Die Lösung besteht darin, die Anwendung zur Kompilierungs- und Laufzeit mit denselben Versionen zu erstellen, oder zumindest ist die Version zur Kompilierzeit niedriger als die Version zur Laufzeit. Die Liste der JRE-Versionen, die mit der Klasse kompatibel sind, finden Sie unten.
Java SE 17 = 61,
Java SE 16 = 60,
Java SE 15 = 59,
Java SE 14 = 58,
Java SE 13 = 57,
Java SE 12 = 56,
Java SE 11 = 55,
Java SE 10 = 54,
Java SE 9 = 53,
Java SE 8 = 52,
Java SE 7 = 51,
Java SE 6.0 = 50,
Java SE 5.0 = 49,
JDK 1.4 = 48,
JDK 1.3 = 47,
JDK 1.2 = 46,
JDK 1.1 = 45
Befolgen Sie die nachstehenden Tipps, um den Fehler Nicht unterstützte Major.Minor-Version
zu beheben.
-
Wir können die JRE-Version in unserer Produktionsumgebung auf die neueste Version aktualisieren. Oder zumindest ähnlich der Build-Umgebung.
-
Wenn ein Upgrade von JRE nicht möglich ist, können wir das JDK in der Build-Umgebung herabstufen, damit es mit der Version in der Produktionsumgebung übereinstimmt, oder es niedriger als in der Produktionsumgebung machen.
-
Eine einfache Lösung ist die Verwendung der Java-Cross-Compilation. Wenn das Produktionsumgebungs-JDK niedriger als die Buildumgebung ist, können wir mithilfe von Cross-Compilation eine Klassendatei mit einer niedrigeren Version generieren.
Der folgende Befehl wird verwendet, um eine Klassendatei für den obigen Code zu erstellen.
javac -target 1.7 Unsupported_Version_Error.java
Der obige Befehl generiert die Klassendatei Unsupported_Version_Error.java
, die mit der Version 1.7 des JDK kompatibel ist, damit wir sie in der Build-Umgebung ausführen können.
der Fehler Nicht unterstützte Major.Minor-Version
im Eclipse-Projekt
Wenn Sie eine IDE wie Eclipse verwenden, müssen wir die Java-Version des aktuellen Projekts in der IDE ändern. Befolgen Sie die nachstehenden Schritte, um die Java-Version in Eclipse zu ändern, wodurch der Fehler Nicht unterstützte Hauptversion.Unterversion
behoben wird.
-
Klicken Sie in Eclipse mit der rechten Maustaste auf den Projektnamen und gehen Sie zu
Eigenschaften
. -
Gehen Sie zu
Java Build Path
und dann zuLibraries
. -
Entfernen Sie die bisherige
JRE System Library
. Wählen Sie dieJRE-Systembibliothek
und klicken Sie aufEntfernen
. -
Im nächsten Schritt fügen Sie die
JRE System Library
hinzu. Klicken Sie aufBibliothek hinzufügen
. -
Wählen Sie
JRE System Library
und klicken Sie aufNext
. -
Wählen Sie die Option
Alternative JRE
und wählen Sie die neueste JRE aus. Klicken Sie aufFertig stellen
.
Nach diesem Prozess ist unsere Produktionsumgebung JRE ähnlich oder höher als die Build-Umgebung und der Fehler Nicht unterstützte Haupt-, Nebenversion
wird behoben.
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn FacebookVerwandter Artikel - Java Error
- Adresse wird bereits verwendet JVM_Bind-Fehler in Java
- Android Java.Lang.IllegalStateException behoben: Methode der Aktivität konnte nicht ausgeführt werden
- Ausnahme im Hauptthread Java.Lang.ClassNotFoundException in IntelliJ IDEA
- Ausnahme im Hauptthread Java.Lang.NoClassDefFoundError
- Beheben Sie das Problem, dass Java nicht installiert werden kann. Es gibt Fehler in den folgenden Schaltern
- Beheben Sie den Fehler `Es wurde keine Java Virtual Machine gefunden` in Eclipse