Today, I updated my Minecraft server to 26.1.1. There is a small thing that needs my attention.
As usual, I did the server upgrade. Everything looks OK, except the minecraft is not working.
I check the status of Minecraft service.
davidyin@minecraft:~$ sudo service minecraft status ○ minecraft.service - Minecraft Server Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; preset: enabled) Active: inactive (dead) since Tue 2026-04-07 20:00:58 UTC; 1min 58s ago Duration: 811ms Process: 790 ExecStart=/usr/bin/java -Xmx5102M -Xms1024M -jar server.jar nogui (code=exited, status=1/FAILURE) Process: 876 ExecStop=/opt/minecraft/tools/mcrcon/mcrcon -H 127.0.0.1 -P 25575 -p izpait stop (code=exited, status=1/FAILURE) Main PID: 790 (code=exited, status=1/FAILURE) CPU: 233ms Apr 07 20:00:57 minecraft systemd[1]: Started minecraft.service - Minecraft Server. Apr 07 20:00:58 minecraft java[790]: Error: LinkageError occurred while loading main class net.minecraft.bundler.Main Apr 07 20:00:58 minecraft java[790]: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime (class file v Apr 07 20:00:58 minecraft mcrcon[876]: Connection failed. Apr 07 20:00:58 minecraft mcrcon[876]: Error 111: Connection refused Apr 07 20:00:58 minecraft systemd[1]: minecraft.service: Deactivated successfully.
It is clearly mentioned that the problem is with the service.
Apr 07 20:00:58 minecraft java[790]: java.lang.UnsupportedClassVersionError: net/minecraft/bundler/Main has been compiled by a more recent version of the Java Runtime
I checked the official Tutorial. There is a section about Java.
- Minecraft ≥ 26.1 and above requires Java 25.
- Minecraft ≥ 1.20.5 and 1.21.11 requires Java 21.
- Minecraft ≥ 1.18 requires Java 17.
- Minecraft ≥ 1.12 requires Java 8.
Now, I check the Java version on the server.
davidyin@minecraft:~$ java -version java version "21.0.3" 2024-04-16 LTS Java(TM) SE Runtime Environment (build 21.0.3+7-LTS-152) Java HotSpot(TM) 64-Bit Server VM (build 21.0.3+7-LTS-152, mixed mode, sharing)
It is version 21.0.3.
I need a higher version of Java, at least Java 25.
Go to Oracle page
https://www.oracle.com/java/technologies/downloads/#java25
It has Java 26 as well. But I don’t need it. I just need JDK 25 x64 Debian Package.
https://download.oracle.com/java/25/latest/jdk-25_linux-x64_bin.deb
After downloading JDK 25 to the server, I run the following command to install it.
davidyin@minecraft:~$ sudo apt install ./jdk-25_linux-x64_bin.deb Reading package lists... Done Building dependency tree... Done Reading state information... Done Note, selecting 'jdk-25' instead of './jdk-25_linux-x64_bin.deb' The following NEW packages will be installed: jdk-25 0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/185 MB of archives. After this operation, 392 MB of additional disk space will be used. Get:1 /home/davidyin/jdk-25_linux-x64_bin.deb jdk-25 amd64 25.0.2-ga [185 MB] Selecting previously unselected package jdk-25. (Reading database ... 129616 files and directories currently installed.) Preparing to unpack .../jdk-25_linux-x64_bin.deb ... Unpacking jdk-25 (25.0.2-ga) ... Setting up jdk-25 (25.0.2-ga) ... update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jar to provide /usr/bin/jar (jar) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jarsigner to provide /usr/bin/jarsigner (jarsigner) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/java to provide /usr/bin/java (java) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/javac to provide /usr/bin/javac (javac) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/javadoc to provide /usr/bin/javadoc (javadoc) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/javap to provide /usr/bin/javap (javap) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jcmd to provide /usr/bin/jcmd (jcmd) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jconsole to provide /usr/bin/jconsole (jconsole) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jdb to provide /usr/bin/jdb (jdb) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jdeprscan to provide /usr/bin/jdeprscan (jdeprscan) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jdeps to provide /usr/bin/jdeps (jdeps) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jfr to provide /usr/bin/jfr (jfr) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jhsdb to provide /usr/bin/jhsdb (jhsdb) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jimage to provide /usr/bin/jimage (jimage) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jinfo to provide /usr/bin/jinfo (jinfo) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jlink to provide /usr/bin/jlink (jlink) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jmap to provide /usr/bin/jmap (jmap) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jmod to provide /usr/bin/jmod (jmod) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jnativescan to provide /usr/bin/jnativescan (jnativescan) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jps to provide /usr/bin/jps (jps) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jrunscript to provide /usr/bin/jrunscript (jrunscript) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jshell to provide /usr/bin/jshell (jshell) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jstack to provide /usr/bin/jstack (jstack) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jstat to provide /usr/bin/jstat (jstat) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jstatd to provide /usr/bin/jstatd (jstatd) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/jwebserver to provide /usr/bin/jwebserver (jwebserver) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/bin/serialver to provide /usr/bin/serialver (serialver) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64 to provide /usr/java/jdk-25-oracle-x64 (java_jdk_25_oracle) in auto mode update-alternatives: using /usr/lib/jvm/jdk-25.0.2-oracle-x64/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode Scanning processes... Scanning linux images... Running kernel seems to be up-to-date. No services need to be restarted. No containers need to be restarted. No user sessions are running outdated binaries. No VM guests are running outdated hypervisor (qemu) binaries on this host.
Check the Java version again.
davidyin@minecraft:~$ java -version java version "25.0.2" 2026-01-20 LTS Java(TM) SE Runtime Environment (build 25.0.2+10-LTS-69) Java HotSpot(TM) 64-Bit Server VM (build 25.0.2+10-LTS-69, mixed mode, sharing)
Then I restart the Minecraft service and check the status.
davidyin@minecraft:~$ sudo service minecraft restart davidyin@minecraft:~$ sudo service minecraft status ● minecraft.service - Minecraft Server Loaded: loaded (/etc/systemd/system/minecraft.service; enabled; preset: enabled) Active: active (running) since Tue 2026-04-07 20:07:18 UTC; 5s ago Main PID: 1516 (java) Tasks: 25 (limit: 7012) Memory: 503.6M (peak: 503.8M) CPU: 12.546s CGroup: /system.slice/minecraft.service └─1516 /usr/bin/java -Xmx5102M -Xms1024M -jar server.jar nogui Apr 07 20:07:18 minecraft java[1516]: Unpacking com/mojang/authlib/7.0.63/authlib-7.0.63.jar (libraries:com.mojang:authlib:7.0.63) to libraries/com/mojang/authlib/7.0.63/authlib-7.0.63.jar Apr 07 20:07:19 minecraft java[1516]: Starting net.minecraft.server.Main Apr 07 20:07:20 minecraft java[1516]: WARNING: A restricted method in java.lang.System has been called Apr 07 20:07:20 minecraft java[1516]: WARNING: java.lang.System::load has been called by com.sun.jna.Native in an unnamed module (file:/opt/minecraft/server/libraries/net/java/dev/jna/jna/ Apr 07 20:07:20 minecraft java[1516]: WARNING: Use --enable-native-access=ALL-UNNAMED to avoid a warning for callers in this module Apr 07 20:07:20 minecraft java[1516]: WARNING: Restricted methods will be blocked in a future release unless native access is enabled Apr 07 20:07:22 minecraft java[1516]: WARNING: A terminally deprecated method in sun.misc.Unsafe has been called Apr 07 20:07:22 minecraft java[1516]: WARNING: sun.misc.Unsafe::objectFieldOffset has been called by org.joml.MemUtil$MemUtilUnsafe (file:/opt/minecraft/server/libraries/org/joml/joml/1.10 Apr 07 20:07:22 minecraft java[1516]: WARNING: Please consider reporting this to the maintainers of class org.joml.MemUtil$MemUtilUnsafe Apr 07 20:07:22 minecraft java[1516]: WARNING: sun.misc.Unsafe::objectFieldOffset will be removed in a future release lines 1-20/20 (END)
