web-dev-qa-db-fra.com

Java / Minecraft "Erreur: impossible de trouver ou de charger la classe principale –Xms1024M"

Je ne suis ni un pro de Linux ni un Java pro, mais je configure un serveur Minecraft sur Ubuntu 16.04. Le système dispose de 8 Go de RAM.

J'ai suivi toutes les instructions pour configurer le serveur (ce qui est très simple), mais lorsque j'ai exécuté la commande:

Sudo Java –Xms1024M -Xmx1024M -jar minecraft_server.1.9.2.jar nogui

J'ai eu ceci:

Error: Could not find or load main class –Xms1024M

J'ai ensuite simplement couru (après environ 1 heure de piratage pour essayer d'installer différents JRE): Sudo Java -jar minecraft_server.1.9.2.jar nogui et cela a fonctionné.

Quelle est la différence et quels sont les problèmes possibles en ne spécifiant pas de RAM?

De plus, quelle est la bonne pratique pour démarrer le serveur Minecraft via SSH et le laisser s’exécuter en arrière-plan après la déconnexion?

Modifier:

Lorsque je lance Java -jar minecraft_server.1.9.2.jar nogui, je vois cette sortie:

2016-05-08 14:30:35,683 ERROR Cannot access RandomAccessFile {}) Java.io.FileNotFoundException: logs/latest.log (Permission denied)
2016-05-08 14:30:35,684 ERROR Unable to invoke method createAppender in class org.Apache.logging.log4j.core.appender.RollingRandomAccessFileAppender for element RollingRandomAccessFile Java.lang.reflect.InvocationTargetException
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:498)

Suivi d'une liste interminable de ceux-ci:

at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
at kx.a(SourceFile:44) [minecraft_server.1.9.2.jar:?]
at kx.b(SourceFile:54) [minecraft_server.1.9.2.jar:?]
1
Jason

Spécifier la RAM


Si vous ne spécifiez pas RAM, le problème est simplement que votre serveur Minecraft n'aura pas assez de RAM réservée pour cela, ce qui entraînerait son crash. Avez-vous essayé de mettre les commandes RAM à la fin, comme ceci:

Java -jar minecraft_server.jar -Xmx8192M

Veillez à ajuster le RAM à vos limites. Notez également qu'il n'est pas nécessaire de spécifier -Xms dans vos arguments. Veillez également à ne pas utiliser Sudo, cela risquerait de compromettre le système.


Utiliser Minecraft en arrière-plan


Vous pouvez exécuter Minecraft en arrière-plan de différentes manières. J'ai énuméré quelques-uns ci-dessous à titre d'exemple.

Méthode 1: screen

Vous pouvez exécuter une session Minecraft en arrière-plan à l'aide d'un utilitaire astucieux appelé screen. Vous pouvez le faire en exécutant simplement la commande screen, suivie de votre commande de démarrage. Ensuite, appuyez simplement sur Ctrl + A suivi par D. Vous reviendrez à un terminal. Pour reprendre votre session screen, lancez simplement screen -r.

La plupart des gens préfèrent screen parce que vous pouvez revenir en arrière et accéder à la console à tout moment.

Méthode 2: bg/fg

Une fois votre serveur Minecraft démarré, appuyez sur Ctrl+Z sur votre clavier. À partir de là, tapez bg. Votre serveur Minecraft sera exécuté en arrière-plan.

Notez que je ne l'ai pas personnellement testé, donc YMMV.

Méthode 3: Nohup

Ajoutez votre commande de démarrage avec la commande Nohup. Une fois votre serveur Minecraft démarré, fermez simplement votre session SSH. Le serveur continuera à fonctionner.

Soyez prudent avec Nohup car il utilisera BEAUCOUP d’espace sur le disque dur pour conserver ses propres journaux. Vous pouvez éviter cela en ajoutant >/dev/null 2>&1 à la fin de la commande.

Méthode 4: Initscripts

Les scripts d'initialisation sont très compliqués, mais permettent au serveur de démarrer/arrêter automatiquement au démarrage ou lors d'un appel manuel. Les instructions sont disponibles en ligne. Il existe de nombreuses méthodes efficaces, mais elles doivent être adaptées à votre système.


Erreurs de permission


Votre problème d'autorisations est dû au fait que Minecraft a créé tous ses fichiers en tant que root. Par conséquent, seul root peut y accéder. Corrigez cela en exécutant Sudo chown -R $USER:$USER . dans le dossier Minecraft.

Source: Sysadmin pour un réseau Minecraft

1
Kaz Wolfe

Faites attention au cas!

La m devrait être en minuscule, comme suit:

Sudo Java -Xms1024m -Xmx1024m -jar minecraft_server.1.9.2.jar nogui

Essayez également de mettre les options de mémoire à la fin.

1
Android Dev