[Bug]: mcserver is using JRE class file version 65 but LGSM installs 61 on Deb12
User story
I want to install mcserver and all its dependencies using LinuxGSM so that I can start it
Game
Minecraft
Linux distro
Debian 12 (minimal)
Command
command: start
Further information
Upon installing the dependencies from the list given by ./mcserver install, I get [ FAIL ] Starting mcserver: Unable to start Server!. Manually starting the minecraft server reveals the message Error: LinkageError occurred while loading main class net.minecraft.bundler.Main java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file version 65.0), this version of the Java Runtime only recognizes class file versions up to 61.0
After manually installing JDK version 23.0.1 using wget https://download.oracle.com/java/23/latest/jdk-23_linux-x64_bin.deb && sudo dpkg -i ./jdk-23_linux-x64_bin.deb && rm ./jdk-23_linux-x64_bin.deb, the server starts normally again.
There was also one package in the dependencies which seems to not exist anymore when using apt install <dependencies>, but unfortunately I do not remember that. It is not being checked for when installing the server but was in the apt install command printed out by it.
Maybe the dependency list for mcserver needs an update?
Best regards Domml
Relevant log output
No response
Steps to reproduce
- Have Debian 12 (I am using minimal)
- Follow the steps from the Install section at the LGSM Minecraft Server site
- Install the dependencies listed by the
./mcserver installcommand - Start the server with
./mcserver start - See that the server won't start because of the java version mismatch in the newest Minecraft version and Debian 12's default-jdk (Java 21 vs Java 17)
So to be clear Debian 12 "bookworm" only has openjdk-17 as the highest version available in its repo Debian 13 "trixie" (in development) has up to openjdk-24 Ubuntu 22.04 and above has openjdk-21
Minecraft now requires at least openjdk-21 to run.
Debians mindset is for slower released and stability over the latest versions of stuff. This can cuase issues somtimes as game dev's often use newer dependencies that Debian can provide.
Looks like Mojang has taken to decision to not support debian 12 (although it can be done manually) and has probably built their binaries with Ubuntu 24.04 in mind.
I prefer not to have LinuxGSM doing fancy things with dependencies unless absolutely required.
So the currently suggestions are
- Use a distro that has Java 21 such as Ubuntu 24.04
- Use the docker image that is built on Ubuntu
- Manually install Java 21 (like you have already done)
From a LinuxGSM perspective, there is not a lot we can do about this issue and we just need to wait for the next Debian release