Créer un serveur Minecraft Java en 2026 : Paper, Java, RAM, whitelist et sauvegardes
Tu peux avoir un serveur Minecraft Java qui tourne en dix minutes. Tu peux aussi en avoir un qui rame tous les soirs, qui se fait détruire par un inconnu qui a trouvé l’adresse, et qui perd une semaine de construction à cause d’un mauvais arrêt. La différence tient à une poignée de décisions prises le premier jour. Ce guide les passe en revue dans l’ordre, avec les commandes, et dit d’où vient chaque chiffre.
Il suppose une machine Linux que tu contrôles (un serveur à la maison, un VPS, ou un serveur de jeu hébergé où tu peux modifier les fichiers). Si tu préfères te passer de la partie machine, un serveur Minecraft hébergé te donne les mêmes fichiers et la même console depuis un panel, et il existe un serveur gratuit à essayer avant de dépenser quoi que ce soit. Tout ce qui suit s’applique dans les deux cas.
1. Choisir le logiciel : vanilla ou Paper
Le server.jar de Mojang est l’implémentation de référence, et il convient parfaitement pour quelques amis et sans plugins. Paper en est un fork qui garde le même gameplay et réécrit de nombreux chemins critiques pour la vitesse, et qui ajoute la prise en charge des plugins. Pour tout ce qui dépasse un petit monde privé, Paper est le point de départ habituel. Purpur est un autre fork de Paper avec des options de gameplay supplémentaires ; commence avec Paper et ne change que si tu as besoin d’un réglage de Purpur.
Télécharge la version pour ta version de Minecraft sur la page de téléchargement de Paper et mets-la dans un dossier vide, par exemple ~/minecraft/paper.jar.
2. Installer le Java dont la version a besoin
Java est la partie que les gens ratent, parce que l’exigence change avec la version du jeu. D’après le guide de démarrage de Paper, Minecraft 1.20 à 1.21.11 demande Java 21, et la nouvelle numérotation à partir de 26.1 demande Java 25. Le tutoriel serveur du wiki Minecraft est d’accord : Java 25 pour la 26.1, Java 21 à partir de la 1.20.5, Java 17 avant.
Vérifie ce que tu as :
java -version
S’il affiche une version majeure plus ancienne que celle exigée, installe-en une plus récente avant tout le reste. La page d’installation de Java de Paper liste les options par système. Faire tourner une version récente du jeu sur un vieux Java donne une erreur au démarrage, pas un bug sournois : tu le sauras vite.
3. Premier démarrage et EULA
Lance le jar une première fois :
cd ~/minecraft
java -Xms4G -Xmx4G -jar paper.jar --nogui
Cette commande est celle du guide de Paper. --nogui évite l’ouverture de la fenêtre du serveur vanilla, ce que tu veux sur une machine sans écran. Le premier lancement s’arrête vite et écrit eula.txt. Ouvre-le, lis l’EULA de Minecraft vers laquelle il pointe, et si tu es d’accord, remplace eula=false par eula=true. Relance, et le monde est généré. Le port par défaut est 25565, défini par server-port dans server.properties.
4. La mémoire : combien, et ce qu’il faut laisser de côté
-Xms est le tas (heap) avec lequel la JVM démarre, -Xmx est le maximum qu’il peut atteindre. Les mettre égaux évite que la JVM redimensionne le tas pendant que des joueurs sont connectés. La règle importante, tirée de la documentation de PaperMC sur les flags d’Aikar : ne donne pas à Java toute la mémoire de la machine ou de l’offre. Sur un hôte de 8 Go, leur conseil est d’environ 6 500 Mo, parce que Java utilise de la mémoire en dehors du tas et que le système en a besoin aussi.
Ne lis pas la même page comme « il te faut 10 Go ». Leur ligne est une recommandation pour des serveurs qui ont de la mémoire à revendre, et la même page dit que les gains plafonnent. Un petit monde privé tourne avec bien moins, et nous passons en revue des chiffres réalistes dans de combien de RAM un serveur de jeu a vraiment besoin.
5. Les flags de la JVM, et d’où ils viennent
L’ensemble de flags le plus copié est celui d’Aikar, documenté par PaperMC. Pour un tas de 10 Go, la commande documentée est :
java -Xms10G -Xmx10G -XX:+UseG1GC -XX:+ParallelRefProcEnabled \
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions \
-XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 \
-XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M \
-XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 \
-XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 \
-XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 \
-XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 \
-Dusing.aikars.flags=https://mcflags.emc.gs -Daikars.new.flags=true \
-jar paper.jar --nogui
Ce que font ces flags, en clair : ils choisissent le ramasse-miettes G1, visent des pauses d’au plus 200 ms, dimensionnent généreusement la jeune génération parce qu’un serveur de jeu crée beaucoup d’objets à courte durée de vie à chaque tick, et pré-touchent le tas au démarrage pour que les premières minutes ne soient pas ralenties par le système qui distribue les pages. -Dusing.aikars.flags ne fait qu’étiqueter le processus. Tu changes -Xms et -Xmx pour ta propre valeur et tu laisses le reste.
Un avertissement honnête : les flags ne sont pas une baguette magique. Si le serveur rame à cause d’un plugin ou d’une distance de rendu énorme, aucun jeu de flags ne le règle. Mesure d’abord (la commande /tps montre comment le serveur tient ses 20 ticks par seconde) et change une seule chose à la fois.
6. Distance de rendu et distance de simulation
Ces deux lignes de server.properties décident de la plus grande part de ta facture de CPU et de bande passante. La référence de Paper les décrit :
view-distanceest le nombre de chunks autour de chaque joueur que le serveur envoie au client (un rayon, pas un diamètre), de 3 à 32.simulation-distanceest la distance, depuis un joueur, jusqu’à laquelle les entités vivantes sont mises à jour, avec la même plage.
Les deux valent 10 par défaut. La zone est un carré, donc le nombre de chunks par joueur est (2 x distance + 1) au carré, et il grandit vite :
Passer de 10 à 16 multiplie les chunks envoyés par environ 2,5. Pour un petit serveur, une distance de rendu de 8 et une distance de simulation de 6 est un point de départ raisonnable : les joueurs le remarquent à peine, et le serveur le remarque beaucoup. Augmente-les plus tard si les chiffres le permettent.
7. Mode en ligne et whitelist
Laisse online-mode=true. Il fait vérifier par le serveur chaque joueur auprès de la base de comptes de Minecraft, ce qui empêche quelqu’un de se connecter sous le pseudo d’un autre joueur et d’hériter de ses droits d’opérateur. Le désactiver est la cause la plus courante des histoires du genre « quelqu’un est devenu admin sur mon serveur ».
Pour un serveur privé, ajoute une whitelist. Dans server.properties :
white-list=true
enforce-whitelist=true
enforce-whitelist expulse les joueurs qui ne figurent pas dans la liste quand elle est rechargée. Ensuite, depuis la console ou en tant qu’opérateur en jeu :
whitelist add SomePlayer
whitelist list
Le tutoriel du wiki Minecraft documente aussi op <player>, qui modifie ops.json. Donne les droits d’opérateur à le moins de personnes possible, et jamais à un pseudo que tu ne peux pas vérifier.
8. Des sauvegardes qui n’abîment pas le monde
Copier le dossier d’un monde pendant que le serveur y écrit peut te donner une sauvegarde moitié ancienne, moitié nouvelle. Le serveur a des commandes faites exactement pour ça, documentées sur le wiki Minecraft. L’ordre est :
save-off
save-all flush
puis copie le dossier du monde, puis :
save-on
save-off arrête l’écriture des fichiers du monde, save-all flush écrit tout sur le disque immédiatement (avec un bref gel), et save-on reprend. Note que save-off est réinitialisé au redémarrage : un plantage en pleine sauvegarde ne laisse donc pas l’enregistrement désactivé pour toujours. Automatise tout ça avec un script, copie le résultat ailleurs que sur le même disque, et de temps en temps restaure-en une dans un dossier vide pour prouver que ça marche. Des sauvegardes qui se restaurent vraiment détaille ce point.
9. Le garder en marche et à jour
Fais tourner le serveur avec un utilisateur normal, pas root, et lance-le avec un superviseur pour qu’il revienne après un redémarrage. Sur une machine Linux ordinaire, une unité systemd s’en charge ; la même idée pour un bot est montrée dans héberger un bot Discord 24h/24. Mets Paper à jour quand une nouvelle build pour ta version apparaît, et lis les notes de version avant de changer la version de Minecraft elle-même : un monde ouvert par une version plus récente du jeu ne peut pas être rétrogradé de façon fiable. Fais d’abord une sauvegarde, toujours.
La checklist courte
- Paper, et le Java dont la version a besoin (25 pour la 26.1, 21 pour la 1.20 à la 1.21.11).
- Un tas réglé en dessous de la mémoire que tu as réellement, avec les flags documentés.
- Distance de rendu 8 et distance de simulation 6 pour commencer, augmentées seulement avec des mesures.
online-mode=true, une whitelist, très peu d’opérateurs.save-off,save-all flush, copie,save-on, et un test de restauration.
Si tu préfères ne pas gérer la machine, les serveurs de jeu d’Alama mettent les mêmes fichiers, la même console et le SFTP dans un panel. Dans les deux cas, les choix ci-dessus sont les mêmes.