Site icon David Yin's Blog

Upgrade Minecraft Java Server to 26.1.1

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.

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)

 

 

 

Exit mobile version