Quelle version de Java pour un serveur Minecraft ? (Java 25 pour 26.x)
Un serveur Minecraft est un programme Java, et Java existe en versions qui ne s'entendent pas toujours. Mojang relève la version requise tous les quelques ans, et à chaque fois une partie des serveurs bute sur un message d'erreur qui ne semble rien dire sur Java. Depuis Minecraft 26.1, l'exigence est Java 25 ; un serveur en 1.20.4 a besoin de Java 17, et un modpack nostalgique en 1.12.2 veut Java 8. Cet article donne le tableau complet, montre comment reconnaître l'erreur et comment changer de version de Java sans que votre monde ni vos plugins soient concernés.
Le tableau : version de Minecraft et Java correspondant
- 1.12.2 et antérieures : Java 8. Les Java plus récents ne fonctionnent généralement pas avec le Forge de cette époque.
- 1.13 à 1.16.5 : Java 8 est la base ; Java 11 fonctionne souvent aussi, mais les modpacks Forge de cette période restent plus sûrs en 8.
- 1.17 : Java 16 minimum.
- 1.18 à 1.20.4 : Java 17 minimum. Java 21 fonctionne en général sur Paper, mais d'anciens plugins et versions de Forge peuvent trébucher.
- 1.20.5 à 1.21.x : Java 21 minimum.
- 26.1, 26.2 et 26.3 : Java 25 minimum. C'est l'exigence actuelle ; qui est encore en 1.21 et veut mettre à jour a devant lui une mise à niveau de Java en plus d'une nouvelle version de serveur.
La règle : utilisez la version minimale exigée par Mojang, ou la version LTS suivante. Un Java plus ancien que l'exigence ne fonctionne jamais ; un Java bien plus récent ne fonctionne parfois pas avec des plugins ou mods qui s'appuient sur les entrailles de Java.
Reconnaître le message d'erreur
Le message classique d'un Java trop ancien est java.lang.UnsupportedClassVersionError: ... 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. Le nombre après « class file version » révèle l'exigence : 52 pour Java 8, 61 pour Java 17, 65 pour Java 21, 69 pour Java 25. Si vous voyez une telle ligne dans la console, le serveur tourne sous un Java trop ancien.
La situation inverse — un Java trop récent — est plus difficile à repérer. Forge 1.12 ou 1.16 plante alors avec des messages du type ClassCastException, module java.base does not export ou Unable to make ... accessible. Là aussi, la solution n'est pas le mod mais la version de Java.
Vérifier votre version de Java
Dans la console du serveur, le démarrage affiche généralement une ligne comme Starting minecraft server version 26.2 suivie d'informations sur l'environnement ; Paper indique explicitement la version de Java dans les premières lignes. Sur un serveur hébergé, vous choisissez la version dans le panneau, et la commande java -version dans une session SFTP ou console montre ce qui est actif. Chez MC-Node, vous choisissez Java par serveur dans le panneau : changer la version de Java. Sur un VPS, vous installez la version voulue vous-même ; le guide est installer Java sur votre VPS.
Changer de Java sans dégâts
Changer de Java ne touche pas votre monde : la sauvegarde, les plugins et la configuration sont indépendants de l'environnement d'exécution. Ce qui peut mal tourner, c'est un plugin ou un mod qui reposait sur l'ancien Java. Procédez donc ainsi :
- Sauvegardez tout le dossier du serveur.
- Arrêtez le serveur, changez la version de Java dans le panneau (ou sur le VPS) et redémarrez.
- Lisez les trente premières lignes de la console : les erreurs Java apparaissent là, pas à mi-chemin.
- Testez les plugins les plus profondément intégrés : permissions, économie, gestion du monde.
- En cas de problème, revenez en arrière ; le monde est intact.
Java 25 et les versions 26.x : ce qui change
Depuis 26.1, le serveur tourne sur Java 25, et 26.2 comme 26.3 conservent cette exigence. Qui est déjà en 26.2 ne change rien à Java pour 26.3. Qui vient de 1.21 doit faire deux choses à la fois : mettre à jour l'environnement Java et passer le logiciel serveur et les plugins en 26.x. Ne le faites pas le jour de la sortie : Paper, Purpur et les gros plugins ont en général besoin d'une semaine après une nouvelle version de Minecraft. Ce qui change dans 26.3 et quels datapacks cassent, c'est dans Minecraft 26.3 et votre serveur.
Java sur un VPS : plusieurs versions côte à côte
Si vous faites tourner plusieurs serveurs sur un VPS, vous voulez souvent deux versions de Java en même temps : 17 pour un vieux modpack et 25 pour un serveur 26.x. C'est possible sans difficulté en installant chaque version dans son propre dossier (via les paquets Adoptium ou ceux de la distribution, par exemple) et en utilisant dans le script de démarrage de chaque serveur le chemin complet vers le bon java plutôt que la simple commande. Ainsi c'est le script qui décide de la version, pas le défaut du système. Vérifiez toutefois après une mise à jour système que le Java par défaut n'a pas changé ; un apt upgrade peut déplacer le lien symbolique et le serveur démarre alors avec la mauvaise version.
Mémoire et options Java
Outre la version, la configuration de Java détermine la mémoire que le serveur peut utiliser : les options -Xms et -Xmx fixent les limites basse et haute. Sur un serveur hébergé, le panneau s'en charge selon la RAM de votre offre ; sur un VPS, vous les réglez vous-même en laissant environ 1 Go au système d'exploitation. Les « Aikar's flags » très répandues pour le ramasse-miettes fonctionnent toujours très bien sur Java 21 et 25 et évitent les à-coups d'une configuration par défaut sur les grands mondes.
En résumé
- 26.x : Java 25. 1.20.5 à 1.21 : Java 21. 1.18 à 1.20.4 : Java 17. 1.17 : Java 16. 1.16 et antérieures : Java 8.
- « class file version 69 » dans l'erreur signifie : le serveur veut Java 25.
- Changer ne touche pas votre monde ; faites quand même une sauvegarde et lisez les premières lignes de la console.
- Mettez Java à jour avant de passer en 26.x, mais pas le jour de sortie d'une nouvelle version de Minecraft.
- Hébergement Minecraft pas cher : ce qui compte vraiment pour comparer
- Gagner de l'argent avec son serveur Minecraft : ce que l'EULA permet