First of all, I’m not sure whether this is an issue with my server software, java, or my linux ineptitude so I apologize if this is in the wrong category.
I have been trying to install Enigmatica 2 Expert modpack on my MineOS distro and cannot get the server to start. I am able to get a vanilla server setup and running easily through the profile feature of MineOS, but when I try to bring in a modpack, I cannot get it to work.
I copied the server .zip files into /var/games/minecraft/severs/import and used the MineOS web interface to import the server from that zip file. Then when I use the terminal to run the “ServerStartLinux.sh” file that is included, it gives this error:
Starting Server
Unrecognized option: -d64
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
“-d64” is the first argument in the settings.cfg file, but I’m not sure what that argument means or why it doesn’t recognize it.
Any help is greatly appreciated! I have looked at older posts showing how they installed modpacks, but they didn’t work for me.
Edit:
I have also tried simply creating a new server and setting the universal forge jar as the executable jar and starting the server, but it either doesn’t do anything at all or it starts momentarily and then immediately goes down.
A few things, some related to java, some related to how you’ll run it.
In MineOS, you won’t use ServerStartLinux.sh. That shell script is how you’d run a server if you didn’t have any webui/management software.
-d64 shouldn’t really exist, anywhere. I don’t know why they included it in the startup script, because it’s really of no value. Understandably, with a 64 bit processor, users will want to use 64-bit software, but there is very little benefit from forcing it, as -d64 does.
64 bit Java does not provide any performance improvements to Minecraft. Largely, it does the opposite, which is that it requires twice as much overhead for memory addressing. What 64 bit Java does offer is the ability to go above 4GB of memory, both on the system and per-server. If your server utilizes more than 4GB of heap, you’d definitely need 64 bit java, which brings us to our last point.
You don’t need to specify it with -d64. You’re already using a 64 bit operating system and 64 bit java, so you’re set. These values seem like they’re really only ever pertinent for Solaris-installed Java (see Oracle’s FAQ).
I’m not sure what user you tried to start ServerStartLinux.sh as, but if you did it as root, that explains why the server didn’t start up.
Servers are meant to be run as a non-privileged user, such as mc. If you ran it as root, you have inadvertently changed ownership of mc files to root and therefore using the webui (which uses mc) won’t be able to modify the files anymore, as is needed to operate. You’ll have to correct those permissions–and also remember, very few things at all require root when dealing with Minecraft, so when in doubt, don’t be root. (except here, for the corrective actions)
Thank you for the thorough reply and for explaining that Java argument. Would you recommend deleting the java arguments in the settings.cfg file then?
It certainly could be a permissions issue, however I am not sure what you mean when you say the webui uses “mc,” as there is no “mc” user or group on my computer. Running that command yields “invalid user: ‘mc:mc’.” Do I need to create a new user with that name? Or does it use the profile that I log into the webui with? That folder is already owned by that user (my own name, the user i setup when i installed the distro).
Thank you for any help, like I said I am new to linux and so am having to learn a lot to set this up and I appreciate your patience.
I think you may have replied before the server outage, but it looks like reply is gone.
I have changed ownership of all of the files within the games folder to my username, but the server still wont run. I’m not sure what else to try. If you remember what you replied before or have any other suggestions, please let me know!
I have been able to run a vanilla server but not this modpack, so it does seem like the issue might be with how I am getting these files set up.
Any other help welcomed, still trying to figure out hot to resolve this issue. I have triple checked that the permissions are correct for all of the files within /var/games/minecraft and I have imported the server using the WebUI, doing everything as a non-root user. When I hit start on the WebUI, nothing happens. It can see the correct jar folder in there and all, but the start button doesn’t do anything. When I try to run the ServerStartLinux file (as non-root user), it spits out the “-d64” error above still.
I also tried importing one of the FTB modpacks listed in the profiles page of MineOS WebUI, and that gives similar problems - the start button doesn’t do anything.
Vanilla MC works just fine, its only the modded packs that give me issues it seems.
EDIT: sometimes when I press start on the WebUI, it changes the status to START for a couple seconds but then it goes back to DOWN and a notification pops up in the top right saying it went down, but with no other details.
This should be of no consequence, because if you’re using the MineOS webui, it crafts the java arguments (and the whole command line invocation) itself. Therefore, there should be no impact, if you’re relying on the webui to start and stop your servers.
Most installs use the convention (but not requirement) to use mc as the user. This is the default user in MineOS Turnkey and in the instructions to install it manually.
However, feel free to use any other non-root username, and where applicable, replace mc with that username.
Just as you say here, yes.
What does the mineos log report? It’s located in '/var/log/mineos.log`.
Well, it tells us that the issue is the modded packs. The way to address this is to invoke the software manually to see why it won’t run. Let’s start with:
what’s the contents of ServerStartLinux (pastebin or copy it here)
Ok, so first and foremost, have you updated the webui since you installed MineOS?
Based on the behavior you’re describing, what we should expect is that your previous manual attempts at running ServerStartLinux, should have downloaded minecraft.xxxxx.jar where xxxxx is a server version. This jar should appear in the webui drop down, does it?
There should also be a forge-${MCVER}-${FORGEVER}-installer.jar. Is this also here?
ls -la /var/games/minecraft/Enigmatica2Expert1.67. Every file should be owned by whatever user you’re logging into the webui. EVERY file. I’d be able to glean what that user is but you didn’t provide the full mineos.log. Anyway, check inside a directory or two to confirm this is the case.
How much memory are you allocating to the java heap?
I hadnt updated since install. Just installed update, but nothing seems to have changed.
Yes, there is minecraft_server.1.12.2.jar and its in the drop down.
There is a forge jar, but it is called forge1.12.2-14.23.5.2836-universal.jar
there is no “installer” jar.
There is a installer log inside the server folder called installer.jar.log and it seems to indicate that everything was installed correctly. The last few lines of this log are:
Extracting: /forge-1.12.2-14.23.5.2836-universal.jar
To: /var/games/minecraft/servers/Enigmatica2Expert1.67/./forge-1.12.2-14.23.5.2836-universal.jar
The server installed successfully, you should now be able to run the file forge-1.12.2-14.23.5.2836-universal.jar
You can delete this installer file now if you wish
Yes, I have used chown and chmod commands to make everything owned by my main account “taylor.” Here is the output from that command you suggested:
taylor@ServerComputer:~$ ls -la /var/games/minecraft/servers/Enigmatica2Expert1.67
total 34596
drwxrwxrwx 7 taylor taylor 4096 Aug 18 15:01 .
drwxrwxrwx 5 taylor taylor 4096 Aug 26 20:35 …
drwxrwxrwx 55 taylor taylor 12288 Aug 26 20:35 config
-rwxrwxrwx 1 taylor taylor 0 Aug 26 20:35 cron.config
-rw-rw-r-- 1 taylor taylor 9 Aug 26 20:41 eula.txt
-rwxrwxrwx 1 taylor taylor 5034429 Aug 26 20:39 forge-1.12.2-14.23.5.2836-universal.jar
-rwxrwxrwx 1 taylor taylor 9527 Aug 26 20:39 installer.jar.log
drwxrwxrwx 7 taylor taylor 4096 Aug 26 20:39 libraries
-rwxrwxrwx 1 taylor taylor 3237 Aug 26 20:35 LICENSE.md
-rwxrwxrwx 1 taylor taylor 30222121 Aug 26 20:39 minecraft_server.1.12.2.jar
drwxrwxrwx 2 taylor taylor 20480 Aug 26 20:35 mods
-rwxrwxrwx 1 taylor taylor 12200 Aug 26 20:35 README.md
drwxrwxrwx 14 taylor taylor 4096 Aug 26 20:35 schematics
drwxrwxrwx 3 taylor taylor 4096 Aug 26 20:35 scripts
-rwxrwxrwx 1 taylor taylor 130 Aug 29 22:33 server.config
-rwxrwxrwx 1 taylor taylor 1866 Aug 26 20:35 SERVER_GUIDE.txt
-rwxrwxrwx 1 taylor taylor 802 Aug 26 20:35 server.properties
-rwxrwxrwx 1 taylor taylor 44968 Aug 26 20:35 ServerStart.bat
-rwxrwxrwx 1 taylor taylor 10198 Aug 26 20:35 ServerStartLinux.sh
-rwxrwxrwx 1 taylor taylor 1712 Aug 26 20:45 serverstart.log
-rwxrwxrwx 1 taylor taylor 741 Aug 26 20:35 settings.cfg
Currently 4096MB, but I have tried different amounts too.
This tells us how it takes what’s in the webui (and more specifically server.config) and runs it command line. So log into the console as taylor again and let’s try opening it manually:
taylor@mineos-tkldev .../servers/Enigmatica2Expert1.67$ /usr/bin/java -server -Xmx300M -Xms300M -jar minecraft_server.1.14.4.jar nogui
[15:43:58] [main/WARN]: Ambiguity between arguments [teleport, destination] and [teleport, targets] with inputs: [Player, 0123, @e, dd12be42-52a9-4a91-a8a1-11c01849e498]
[15:43:58] [main/WARN]: Ambiguity between arguments [teleport, location] and [teleport, destination] with inputs: [0.1 -0.5 .9, 0 0 0]
Note I’m only starting with java, because the first two parts are for running it in the background. We want to know what the error is, so we want it in the foreground. You’ll also note that all the values are different from what I typed and what you typed–you’ll have to adapt your line so it uses each of the values starting at /usr/bin/java instead of using the ones in this example.
Minecraft should attempt to start up, now, and you’ll get an immediate error showing the problem.
And here is the output from attempting to manually run the server:
taylor@ServerComputer:/var/games/minecraft/servers/Enigmatica2Expert1.67$ /usr/bin/java -server -Xmx4096M -Xms4096M -jar forge-1.12.2-14.23.5.2836-universal.jar nogui
A problem occurred running the Server launcher.java.lang.reflect.InvocationTargetException
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:567)
at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.run(ServerLaunchWrapper.java:70)
at net.minecraftforge.fml.relauncher.ServerLaunchWrapper.main(ServerLaunchWrapper.java:34)
Caused by: java.lang.ClassCastException: class jdk.internal.loader.ClassLoaders$AppClassLoader cannot be cast to class java.net.URLClassLoader (jdk.internal.loader.ClassLoaders$AppClassLoader and java.net.URLClassLoader are in module java.base of loader ‘bootstrap’)
at net.minecraft.launchwrapper.Launch.(Launch.java:34)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
… 6 more
The output you provided shows the error, which is the error you’d get if you had any Linux distro and tried to run this command (which is essentially the same command ServerStartLinux tries to run.)
Unfortunately, I don’t know modpacks, so whatever this error means means more to the modpack community and support crews than it does to me. But when this is solved, as in, you’re able to launch it from the command line, you can expect MineOS to then be able to launch it and manage it from then on.