Il messaggio di errore contiene già la risposta: se trovi class file version 65.0, il file richiede Java 21. Il calcolo è sempre lo stesso — numero meno 44 uguale versione Java. Più importante del numero, però, è capire di chi è il file indicato: nella maggior parte dei casi non è il server a essere troppo vecchio, ma un singolo plugin a essere troppo nuovo.
Leggere il messaggio
Una riga tipica ha questo aspetto:
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
Dentro ci sono tre informazioni:
com/example/PluginMain— chi causa l’errore. Se qui compare il nome di un plugin o di una mod, significa che quel singolo file non è compatibile, mentre il server in sé va bene.class file version 65.0— cosa viene richiesto: 65 − 44 = Java 21.only recognizes … up to 61.0— cosa è in esecuzione: 61 − 44 = Java 17.
Tradotto: un plugin compilato per Java 21 si trova su un server che gira con Java 17.
Tabella di conversione
| class file version | Versione Java |
|---|---|
| 52.0 | Java 8 |
| 55.0 | Java 11 |
| 60.0 | Java 16 |
| 61.0 | Java 17 |
| 65.0 | Java 21 |
| 69.0 | Java 25 |
I numeri vengono dalla specifica ufficiale della JVM. La differenza di 44 è costante da Java 1.0 — quindi puoi calcolare da solo qualsiasi versione futura senza ampliare la tabella.
Da ricordare: un runtime Java capisce sempre tutte le versioni di classi più vecchie, ma mai una più nuova. Per questo un plugin Java 8 funziona senza problemi su Java 21, mentre il contrario non funziona mai.
Quale versione Java serve per quale versione Minecraft?
| Versione Minecraft | Java richiesto |
|---|---|
| fino alla 1.16.5 | Java 8 |
| 1.17 – 1.17.1 | Java 16 (in pratica Java 17) |
| 1.18 – 1.20.4 | Java 17 |
| dalla 1.20.5 | Java 21 |
| dalla 26.0 | Java 25 |
Da noi non devi impostarlo tu. Ricaviamo il runtime dalla versione Minecraft del tuo server e lo impostiamo automaticamente. Se ordini la 1.21, ricevi Java 21 senza dover cercare un interruttore.
Per fork server come Leaf e Leaves manteniamo inoltre un’associazione esatta per ogni release, invece di applicare solo la regola generale. Il motivo: un fork può discostarsi dai requisiti Vanilla, e un’ipotesi ottimistica sbaglierebbe proprio quando conta. Se per una combinazione non esiste un Java adatto, interrompiamo volutamente il processo invece di avviare un runtime troppo basso — un server che non parte nel modo sbagliato è più facile da riparare di uno che funziona solo a metà.
Il caso più comune: un plugin, non il server
Se il tuo server funzionava fino a poco prima e l’errore è comparso dopo aver aggiunto un file, la situazione è chiara. Procedi così:
- Annota il nome della classe dal messaggio. Quasi sempre indica il progetto.
- Cerca dal fornitore la variante di build adatta. Molti plugin offrono download separati per Java 17 e Java 21, spesso con il suffisso
-java17o come ramo di release dedicato. Il file più recente non è automaticamente quello giusto. - Se non esiste una variante adatta, ti serve una versione Minecraft più nuova — perché solo quella porta con sé il runtime più recente. Come cambiare versione senza perdere il mondo è spiegato in Cambiare versione del server Minecraft.
- Rimuovi temporaneamente il plugin se il server deve tornare online subito. Come aggiungere e rimuovere plugin in modo pulito è mostrato in Installare mod e plugin Minecraft.
L’altro caso: Java è troppo nuovo
Questo caso viene spiegato raramente, ma succede regolarmente. I vecchi modpack Forge — il classico è 1.12.2 — sono creati per Java 8. Con Java 21 falliscono, di solito non con UnsupportedClassVersionError, ma con messaggi su classi interne mancanti o parametri di avvio rifiutati.
Segnale tipico: il pack prima funzionava, oppure funziona ad altri, e il tuo server indica una versione Minecraft molto vecchia. La soluzione allora non è un Java più nuovo, ma la versione Minecraft corrispondente al pack nel pannello — così impostiamo il runtime più vecchio corretto.
Nota sincera: in questo caso la nostra correzione automatica non interviene. Ripara solo nella direzione “troppo vecchio”, cioè quando il server richiede un Java più nuovo di quello in esecuzione. Un Java troppo nuovo non viene volutamente considerato drift — altrimenti un cliente che ha scelto apposta un runtime più vecchio lo perderebbe automaticamente.
Cosa gestiamo automaticamente
- Runtime adatto già dall’ordine. La versione Java segue la versione Minecraft, senza impostazioni.
- Correzione al cambio versione. Se passi a una versione con requisiti Java più alti, il runtime viene aggiornato insieme.
- Il boot log batte il calcolo. Se il server indica all’avvio una versione Java richiesta più alta di quella in esecuzione, correggiamo in base a questa misurazione — non in base alla deduzione dalla versione ordinata. Una dichiarazione del server su sé stesso è più affidabile di qualsiasi tabella.
- Le immagini personalizzate restano intatte. Se il tuo server gira su un runtime scelto da te, non interveniamo.
- Fail-closed invece di mezzo giusto. Se per una combinazione non esiste un Java adatto, interrompiamo e lo segnaliamo, invece di avviare un runtime sbagliato.
Troubleshooting
| Sintomo | Controllo | Soluzione |
|---|---|---|
viene indicato class file version 65.0, il nome classe è un plugin |
Il server funzionava prima dell’aggiunta? | Scarica la build del plugin adatta alla tua versione MC |
| Errore subito all’avvio del server, nessun plugin indicato | Quale versione Minecraft gira? | Allinea versione e runtime |
| Un vecchio modpack 1.12.2 non parte | Il log indica classi interne mancanti? | Java è troppo nuovo — scegli la versione MC adatta |
| Errore dopo un cambio versione | È comparso subito dopo il cambio? | Attendi il riavvio; se resta, contatta il supporto con la riga completa |
| Il plugin si carica, ma mancano funzioni | Nel log c’è un avviso invece di un errore? | Altra causa — non la versione Java |
FAQ
Posso cambiare da solo la versione Java?
Da noi non serve: deriva dalla versione Minecraft del tuo server. Se ti serve un altro runtime, la strada corretta è cambiare la versione Minecraft — così tutto l’ambiente resta coerente.
Java più nuovo è sempre meglio?
No. Per Minecraft, la versione richiesta è anche un limite superiore pratico: core del server, mod e plugin sono calibrati su quella. Passare a un runtime più alto “per prova” non porta vantaggi e rompe le mod più vecchie.
Perché il mio plugin funziona in locale, ma non sul server?
Perché la tua installazione Java locale può essere più nuova di quella del server. Conta il runtime sul server, non quello sul tuo computer.
Come faccio a sapere con quale Java gira ora il mio server?
Il messaggio te lo dice: only recognizes class file versions up to 61.0 significa Java 17. Senza messaggio di errore, l’avvio del server indica la versione Java nelle prime righe della console.
Dopo un cambio Java devo ricreare il mio mondo?
No. Il runtime riguarda solo l’esecuzione, non il formato del mondo. Un cambio di versione Minecraft, invece, può modificare il formato del mondo — quindi prima crea un backup.
Prossimi passi
Se il server è tornato online ma resta lento, ti aiuta Il server Minecraft lagga: risolvere il Watchdog timeout. Se la RAM non è adatta alle dimensioni del modpack, il calcolatore RAM Minecraft calcola il fabbisogno.
Cerchi un server in cui la versione Java si adatta automaticamente alla versione di gioco? Su Noleggiare un server Minecraft trovi le tariffe.
Fonti e banco di prova
- Requisiti Java per versione Minecraft: Minecraft Wiki — Server/Requirements. Indica esplicitamente Java 16 dalla 1.17, Java 17 dalla 1.18 e Java 21 dalla 1.20.5.
- Mappatura delle versioni class-file: Oracle — The Java Virtual Machine Specification, Java SE 21, tabella 4.1-A. Documenta 52 = Java 8, 55 = Java 11, 60 = Java 16, 61 = Java 17, 65 = Java 21 e la regola secondo cui una JVM supporta solo le versioni elencate e non quelle superiori.
- Java 25: Oracle — The Java Virtual Machine Specification, Java SE 25, tabella 4.1-A. Documenta Major 69.
Banco di prova: 24 agosto 2026. Le nuove versioni Minecraft possono introdurre nuovi requisiti Java; le fonti collegate rappresentano lo stato attuale.