Java / Minecraft "Error: Could not find or load main class –Xms1024M"

I am not a Linux pro nor a Java pro, but I am setting up a Minecraft server on Ubuntu 16.04. System has 8GB RAM.

I followed all the directions for setting up the server (which is very simple) but when I ran the command:

sudo java –Xms1024M -Xmx1024M -jar minecraft_server.1.9.2.jar nogui

I got this:

Error: Could not find or load main class –Xms1024M

I then simply ran (after about 1 hour of hacking around trying to install different JREs): sudo java -jar minecraft_server.1.9.2.jar nogui and it worked.

What is the difference and what are the possible issues by not specifying RAM?

Additionally, what is a good practice for starting up the Minecraft server via SSH and letting it run in the background after disconnecting?

Edit:

When running java -jar minecraft_server.1.9.2.jar nogui I am seeing this output:

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)

Followed by an endless list of these:

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:?]
2

2 Answers

Specifying RAM


The issues by not specifying RAM is pretty simply that your Minecraft server won't have enough RAM reserved for it, causing it to crash. Have you tried putting the RAM commands at the end, like so:

java -jar minecraft_server.jar -Xmx8192M

Be sure to adjust the RAM to your limits. Note, additionally, that you do not need to specify -Xms in your arguments. Be sure to also not use sudo, as that opens up the possibility for system compromise.


Using Minecraft in the background


You can run Minecraft in the background in many different ways. I've listed a few below as an example.

Method 1: screen

You can run a Minecraft session in the background using a nifty utility known as screen. You can do this by just running the screen command, followed by your start command. Afterwards, just press Ctrl + A followed by D. You'll come back to a terminal. To resume your screen session, just run screen -r.

Most people prefer screen because you can go back and access the console at any time.

Method 2: bg/fg

After your Minecraft server has started, press Ctrl+Z on your keyboard. From there, type bg. Your Minecraft server will be running in the background.

Note that I have not personally tested it, so YMMV.

Method 3: nohup

Prepend your start command with the nohup command. After your Minecraft server has started, just close your SSH session. The server will keep running.

Be careful using nohup though, because it will use up a LOT of hard drive space keeping its own logs. You can avoid this by appending >/dev/null 2>&1 to the end of the command.

Method 4: Initscripts

Initscripts are very complicated, but it lets your server auto-start/stop on boot or on manual invocation. Instructions are available online. There are many good methods, but they need to be tailored to your system.


Permission Errors


Your permissions problem is because Minecraft created all of its files as root. Therefore only root can access them. Fix this by running sudo chown -R $USER:$USER . in the Minecraft folder.

Source: Sysadmin for a Minecraft network

5

Pay attention to case!

The m should be lower case, like so:

sudo java -Xms1024m -Xmx1024m -jar minecraft_server.1.9.2.jar nogui

Also, try putting the memory options at the end.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like