Wähle Java passend zur konkreten Server-Version
Paper 26.1 und neuer benötigt Java 25. Für ältere Paper-Versionen empfiehlt Paper Java 21 für 1.20–1.21.11 und Java 17 für 1.17–1.19. Das sind Papers Versionsempfehlungen, keine Kompatibilitätszusage für jeden Minecraft-Server.
Bei Vanilla prüfst du die Anforderungen der Minecraft-Version. Bei Fabric, Forge, NeoForge oder einem Modpack kommen die Vorgaben des Loaders und der konkreten Pack-Version hinzu. Eine neuere Java-Laufzeit ist nicht immer mit einem älteren Mod-Setup kompatibel. Wähle die dokumentierte unterstützte Version, bevor du Java installierst oder das Docker-Image änderst.
Einen Class-File-Fehler richtig lesen
UnsupportedClassVersionError bedeutet, dass eine geladene Klasse für eine neuere Java-Version kompiliert wurde, als die laufende JVM versteht. Die Klasse kann zum Server, einem Plugin oder einem Mod gehören. Lies deshalb auch ihren Namen und die umliegenden Startmeldungen.
Ein Beispiel:
java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 69.0), this version of the Java Runtime only recognizes class file versions up to 65.0
Die erste Zahl bezeichnet die Anforderung der Klasse, die zweite die Grenze der laufenden Java-Version. Hier wird Code für Java 25 mit Java 21 gestartet.
| Class-File-Version | Java-Version |
|---|---|
69.0 | Java 25 |
68.0 | Java 24 |
67.0 | Java 23 |
66.0 | Java 22 |
65.0 | Java 21 |
64.0 | Java 20 |
63.0 | Java 19 |
62.0 | Java 18 |
61.0 | Java 17 |
60.0 | Java 16 |
59.0 | Java 15 |
58.0 | Java 14 |
57.0 | Java 13 |
56.0 | Java 12 |
55.0 | Java 11 |
54.0 | Java 10 |
53.0 | Java 9 |
52.0 | Java 8 |
51.0 | Java 7 |
50.0 | Java 6 |
49.0 | Java 5 |
48.0 | Java 1.4 |
47.0 | Java 1.3 |
46.0 | Java 1.2 |
45.3 | Java 1.1 |
Die Laufzeit muss die Anforderung erfüllen und das gesamte Server-Setup unterstützen. Wenn nur ein neu hinzugefügtes Plugin oder ein Mod scheitert, prüfe zuerst, ob du dessen Build für die falsche Minecraft- oder Java-Version heruntergeladen hast.
Prüfe die Laufzeit, die den Server tatsächlich startet
Docker
Führe diese Befehle im Verzeichnis deiner Compose-Datei aus und ersetze mc durch deinen Service-Namen:
docker compose logs --tail=100 mc
docker compose exec mc java -version
Der zweite Befehl benötigt einen laufenden Container. Wenn dieser sofort beendet wird, prüfe den ersten Startfehler im Log und das Image in deiner Compose-Datei. Eine Java-Installation auf dem Docker-Host verändert Java im Container nicht.
Server ohne Docker
Führe im Terminal aus:
java -version
Den Pfad zur ausführbaren Datei findest du unter Linux/macOS mit command -v java oder in Windows PowerShell mit:
Get-Command java | Select-Object -ExpandProperty Source
Prüfe anschließend das Startskript, den Systemdienst oder das Hosting-Panel des Servers. Dort kann ein absoluter Java-Pfad oder ein anderes PATH als in deinem Terminal verwendet werden. Prüfe auch die Version dieser Datei. Ein erfolgreicher Terminal-Check beweist allein noch nicht, dass der Server sie verwendet.
Docker-Image korrigieren und Container neu erstellen
Wähle für itzg/minecraft-server ein Tag mit der benötigten Java-Hauptversion, beispielsweise itzg/minecraft-server:java25 für einen Server, der Java 25 verlangt. Die Java-Dokumentation des Images listet verfügbare Tags und Kompatibilitätshinweise auf.
Ohne Tag wird latest verwendet. Bewegliche Tags können ihre Java-Version ändern. Wähle deshalb ein explizites Java-Tag, wenn dein Server oder Pack eine bestimmte Laufzeit braucht. java25 legt die Java-Hauptversion fest, aber weder den genauen Image-Build noch die Minecraft-Version.
Ändere nur den image-Wert in deiner vorhandenen Compose-Datei und behalte Volumes, Umgebungsvariablen und weitere Einstellungen bei. Sichere die Serverdaten vor der Änderung, ziehe das Image und erstelle den Service neu:
docker compose pull mc
docker compose up -d mc
docker compose logs -f mc
Prüfe, ob der Start abgeschlossen wird, und wiederhole danach den java -version-Check im Container. Nur den alten Container neu zu starten, übernimmt das geänderte Image nicht. Du kannst deine Compose-Datei auch in den Minecraft Docker Compose Generator importieren und dort das Image-Tag anpassen.
Unterstützte Laufzeit für einen Server ohne Docker installieren
Lade das benötigte JDK bei Adoptium für dein Betriebssystem und deine CPU-Architektur herunter oder folge Papers Java-Installationsanleitung. Wähle die zuvor ermittelte Java-Hauptversion statt automatisch den neuesten Download.
Unter Windows prüfst du die PATH-Optionen des Installers und öffnest nach der Installation ein neues Terminal. Unter macOS oder Linux befolgst du die Installations- und Pfadhinweise des Pakets. Wenn mehrere Java-Versionen installiert sind, trage die gewünschte ausführbare Datei ausdrücklich im Server-Startbefehl ein.
Stoppe den Server, aktualisiere sein Startskript oder seinen Systemdienst und starte ihn erneut. Prüfe die gewählte Datei mit java -version und lies das neue Startlog. Bleibt derselbe Class-File-Fehler bestehen, verwendet der Server wahrscheinlich weiterhin eine andere Laufzeit oder eine inkompatible Erweiterung.
Version prüfen oder Fehlermeldung einfügen
Im Minecraft Java Version Checker kannst du eine Minecraft-Version oder den vollständigen Class-File-Fehler eingeben. Er erkennt die benötigte Laufzeit und schlägt ein explizites Docker-Image-Tag vor. Gleiche das Ergebnis mit zusätzlichen Loader- oder Modpack-Vorgaben ab.
Nach dem Beheben des Java-Fehlers hilft der Docker-Setup-Guide beim ersten Deployment. Wenn der Server startet, Spieler aber nicht verbinden können, folgt der Port-25565-Guide.