De foutmelding bevat het antwoord al: staat er class file version 65.0, dan vereist het bestand Java 21. De berekening is altijd hetzelfde: getal min 44 geeft de Java-versie. Belangrijker dan het getal is echter de vraag van wie het bestand is: in de meeste gevallen is niet de server te oud, maar één losse plugin te nieuw.

De melding lezen

Een typische regel ziet er zo uit:

java.lang.UnsupportedClassVersionError: com/example/PluginMain has been compiled by a more
recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime
only recognizes class file versions up to 61.0

Daarin zitten drie gegevens:

  1. com/example/PluginMain — wie de fout veroorzaakt. Staat hier een plugin- of modnaam, dan betekent dat: dit ene bestand past niet, de server zelf is in orde.
  2. class file version 65.0 — wat vereist wordt: 65 − 44 = Java 21.
  3. only recognizes … up to 61.0 — wat er draait: 61 − 44 = Java 17.

Vertaald: een plugin die voor Java 21 is gebouwd, staat op een server die met Java 17 draait.

Omrekentabel

class file version Java-versie
52.0 Java 8
55.0 Java 11
60.0 Java 16
61.0 Java 17
65.0 Java 21
69.0 Java 25

De getallen komen uit de officiële JVM-specificatie. Het verschil van 44 is daar sinds Java 1.0 constant, dus je kunt elke toekomstige versie zelf uitrekenen zonder de tabel uit te breiden.

Onthoud: een Java-runtime begrijpt altijd alle oudere class-file-versies, maar nooit een nieuwere. Daarom draait een Java 8-plugin probleemloos onder Java 21, maar andersom nooit.

Welke Java-versie heeft welke Minecraft-versie nodig?

Minecraft-versie Vereiste Java
tot en met 1.16.5 Java 8
1.17 – 1.17.1 Java 16 (praktisch Java 17)
1.18 – 1.20.4 Java 17
vanaf 1.20.5 Java 21
vanaf 26.0 Java 25

Bij ons hoef je dat niet in te stellen. Wij leiden de runtime af uit de Minecraft-versie van je server en zetten die automatisch. Bestel je 1.21, dan krijg je Java 21 zonder naar een schakelaar te zoeken.

Voor server-forks zoals Leaf en Leaves onderhouden we daarnaast een exacte koppeling per release, in plaats van de algemene regel over te nemen. De reden: een fork mag afwijken van de Vanilla-eis, en een optimistische aanname zou precies misgaan wanneer het erop aankomt. Is er voor een combinatie geen passende Java te vinden, dan breken we de actie bewust af in plaats van een te lage runtime te starten. Een server die niet eerst verkeerd start, is makkelijker te repareren dan eentje die half draait.

Het vaakste geval: een plugin, niet de server

Als je server net nog draaide en de fout optrad na het toevoegen van een bestand, is de zaak duidelijk. Zo pak je het aan:

  1. Noteer de classnaam uit de melding. Die noemt bijna altijd het project.
  2. Zoek bij de aanbieder de juiste buildvariant. Veel plugins bieden aparte downloads voor Java 17 en Java 21 aan, vaak met de toevoeging -java17 of als eigen release-tak. Het nieuwste bestand is niet automatisch het juiste.
  3. Bestaat er geen passende variant, dan heb je een nieuwere Minecraft-versie nodig, want pas die brengt de nieuwere runtime mee. Hoe je de versie wisselt zonder je wereld kwijt te raken, staat in Minecraft-serverversie wijzigen.
  4. Verwijder de plugin voorlopig als de server dringend moet draaien. Hoe je plugins netjes toevoegt en verwijdert, zie je in Minecraft-mods en plugins installeren.

Het andere geval: Java is te nieuw

Dit geval wordt zelden uitgelegd, maar komt regelmatig voor. Oude Forge-modpacks, met 1.12.2 als klassieker, zijn gebouwd voor Java 8. Onder Java 21 falen ze, meestal niet met UnsupportedClassVersionError, maar met meldingen over ontbrekende interne classes of geweigerde startparameters.

Kenmerk: het pack draaide vroeger, of het draait bij anderen, en je server noemt een heel oude Minecraft-versie. De oplossing is dan niet nieuwere Java, maar de Minecraft-versie die bij het pack hoort in het panel. Daarmee zetten wij de passende oudere runtime.

Eerlijke opmerking: onze automatische correctie grijpt in dit geval niet in. Die repareert uitsluitend in de richting “te oud”, dus wanneer de server een nieuwere Java nodig heeft dan de draaiende runtime. Te nieuwe Java geldt bewust niet als drift, anders zou een klant die expres een oudere runtime heeft gekozen die automatisch weer kwijtraken.

Wat wij automatisch overnemen

  • Passende runtime vanaf bestelling. De Java-versie volgt de Minecraft-versie, zonder instelling.
  • Correctie bij versiewissel. Wissel je naar een versie met hogere Java-eisen, dan wordt de runtime mee aangepast.
  • De bootlog wint van de berekening. Noemt je server bij het starten zelf een benodigde Java-versie die hoger is dan de draaiende, dan corrigeren we op basis van die meting, niet op basis van de afleiding uit de bestelde versie. Een uitspraak van de server over zichzelf is betrouwbaarder dan welke tabel dan ook.
  • Eigen images blijven onaangetast. Draait je server op een zelfgekozen runtime, dan grijpen we niet in.
  • Fail-closed in plaats van half juist. Bestaat er voor een combinatie geen passende Java, dan breken we af en melden we dat, in plaats van een verkeerde runtime te starten.

Troubleshooting

Symptoom Controle Oplossing
class file version 65.0 genoemd, classnaam is een plugin Draaide de server vóór het toevoegen? Plugin-build voor je MC-versie downloaden
Fout direct bij serverstart, geen plugin genoemd Welke Minecraft-versie draait er? Versie en runtime gelijk trekken
Oud 1.12.2-modpack start niet Noemt de log ontbrekende interne classes? Java is te nieuw — passende MC-versie kiezen
Fout na versiewissel Trad die direct na de wissel op? Herstart afwachten; blijft het zo, support met de volledige regel contacteren
Plugin laadt, maar functies ontbreken Staat er in de log een waarschuwing in plaats van een fout? Andere oorzaak — niet de Java-versie

FAQ

Kan ik de Java-versie zelf omzetten?

Bij ons is dat niet nodig: die volgt uit de Minecraft-versie van je server. Heb je een andere runtime nodig, dan is de juiste weg het wisselen van Minecraft-versie. Dan past de hele omgeving bij elkaar.

Is nieuwere Java altijd beter?

Nee. Voor Minecraft is de vereiste versie tegelijk een praktische bovengrens: servercore, mods en plugins zijn daarop afgestemd. Een sprong naar een hogere runtime “op goed geluk” levert geen voordeel op en breekt oudere mods.

Waarom draait mijn plugin lokaal wel, maar niet op de server?

Omdat je lokale Java-installatie nieuwer kan zijn dan die van de server. Beslissend is de runtime op de server, niet die op je eigen computer.

Hoe weet ik met welke Java mijn server nu draait?

De melding vertelt het je: only recognizes class file versions up to 61.0 betekent Java 17. Zonder foutmelding noemt de serverstart de Java-versie in de eerste consoleregels.

Moet ik na een Java-wissel mijn wereld opnieuw maken?

Nee. De runtime beïnvloedt alleen de uitvoering, niet het wereldformaat. Een wissel van de Minecraft-versie kan het wereldformaat daarentegen wel veranderen. Maak daarvoor eerst een back-up.

Volgende stappen

Draait de server weer, maar traag, dan helpt Minecraft-server laggt: Watchdog-timeout oplossen verder. Past het werkgeheugen niet bij de grootte van het modpack, dan berekent de Minecraft-RAM-calculator de behoefte.

Zoek je een server waarop de Java-versie automatisch bij de spelversie past? Op een Minecraft-server huren vind je de tarieven.

Bronnen en teststand

Teststand: 24 augustus 2026. Nieuwe Minecraft-versies kunnen nieuwe Java-eisen meebrengen; de gelinkte bronnen zijn telkens de actuele stand.