Was bedeutet die java Fehlermeldung "java.lang.UnsupportedClassVersionError"?
Hallo,
ich bin ein anfänger was das Programmieren betrifft... ich benutze das jdk 13.0.2... Als ich das 1. kleine Plugin geschreieben habe, das nur eine Nachricht in der Konsole (Spigot 1.8 Minecraftserver) kam die Fehlermeldung: java.lang.UnsupportedClassVersionError
Ich weiß das iwelche Versionen nicht zusammenpassen aber nicht welche... Kann mir jemand sagen wie ich den Fehlr beheben kann ?
LG und Danke für die Antworten
2 Antworten
a) Kompiliere deine Java-Quellen mit der gleichen oder älteren Version des Java-Compilers, die für die Ausführung verwendet wird. dh installiere das entsprechende JDK.
b) Kompiliere deine Java-Quellen mit der neueren Version des Java-Compilers, aber im Kompatibilitätsmodus. Verwende den Parameter target
c) Führe deine kompilierten Klassen in einer JRE aus, die die gleiche oder eine neuere Version ist wie das JDK, das zum Kompilieren der Klassen verwendet wurde.
Du kannst überprüfen, welche Versionen du gerade verwendest, mit javac -version für den Compiler und java -version für die Laufzeit.
Das kann unter Anderem daran liegen, dass Du in der IDE eine andere Bukkit/Spigot.jar hast als auf dem Server.
Oder dass es mit einer falschen Java-Version kompiliert wurde.. Wenn Du das JDK 13.0.2 für die Programmierung nutzt, aber auf dem Server eine ältere Version installiert ist, kommt es zu dem Fehler.
Am besten schickst Du uns den gesamten Stackstrace. Denn erst dann kann das Problem näher betrachtet werden.
Caused by: java.lang.UnsupportedClassVersionError: de/wonkie/tutorial/main/Main has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
Auf Deutsch:
Verursacht durch: java.lang.UnsupportedClassVersionError: de/wonkie/tutorial/main/Main wurde von einer neueren Version der Java Runtime (Klassendatei Version 57.0) kompiliert, diese Version der Java Runtime erkennt nur Klassendatei-Versionen bis 52.0
Also ist es so, wie ich bereits sagte. Der Server nutzt eine ältere Version der Java Runtime, während Du in deiner Entwicklungsumgebung eine neuere verwendest.
Lösung: Entweder auf dem Server die aktuellste Runtime installieren, oder das Projekt mit einer älteren Version exportieren.
Ist mit Stacktrace die gesamte Fehlermeldung gemeint ?
[10:14:27 ERROR]: Could not load 'plugins\Tutorial.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.UnsupportedClassVersionError: de/wonkie/tutorial/main/Main has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugins(CraftServer.java:291) [spigot.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:152) [spigot.jar:git-Spigot-c3c767f-33d5de3]
at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:505) [spigot.jar:git-Spigot-c3c767f-33d5de3]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_241]
Caused by: java.lang.UnsupportedClassVersionError: de/wonkie/tutorial/main/Main has been compiled by a more recent version of the Java Runtime (class file version 57.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method) ~[?:1.8.0_241]
at java.lang.ClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241]
at java.security.SecureClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241]
at java.net.URLClassLoader.defineClass(Unknown Source) ~[?:1.8.0_241]
at java.net.URLClassLoader.access$100(Unknown Source) ~[?:1.8.0_241]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_241]
at java.net.URLClassLoader$1.run(Unknown Source) ~[?:1.8.0_241]
at java.security.AccessController.doPrivileged(Native Method) ~[?:1.8.0_241]
at java.net.URLClassLoader.findClass(Unknown Source) ~[?:1.8.0_241]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:101) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.java:86) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241]
at java.lang.ClassLoader.loadClass(Unknown Source) ~[?:1.8.0_241]
at java.lang.Class.forName0(Native Method) ~[?:1.8.0_241]
at java.lang.Class.forName(Unknown Source) ~[?:1.8.0_241]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:64) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot.jar:git-Spigot-c3c767f-33d5de3]
... 6 more
Ichhabe jz einmal die gsamte Fehlermeldung kopiert und eingfügt