
All The Mods 10 needs Java 21. ATM10 runs on Minecraft 1.21.1 with NeoForge, and the start script in the pack's own server files stops with "Minecraft 1.21 requires Java 21" when it finds no Java or an older one. Java 25 only comes in with Minecraft 26.1: Mojang's version files list Java 21 for 1.21.1 and Java 25 for every 26.x release. That is why ATM11, the beta on Minecraft 26.1.2, needs Java 25 and ATM10 does not. Our Minecraft Java version guide lists the Java for every Minecraft release, and our Aikar's flags guide has the JVM arguments for Java 21 and Java 25.
Quick answer: Install Java 21, check it with java -version, and start ATM10 with it. Java 25 gets past the pack's start check, but the pack's guides do not list it for ATM10, so stay on 21. The JVM flags for ATM10 have their own page: our ATM10 JVM arguments guide.
ATM10 Java Version Requirement
ATM10 requires Java 21.
ATM10 runs on Minecraft 1.21.1 with NeoForge, and Mojang's version file for 1.21.1 lists Java 21. NeoForge's own documentation for 1.21 to 1.21.1 asks for a Java 21 JDK as well. The newest server files on CurseForge on 1 November 2026, ServerFiles-8.4.zip for ATM10 8.4, install NeoForge 21.1.265 and check your Java before the server starts: with no Java, or with a version below 21, startserver.sh stops with "Minecraft 1.21 requires Java 21" and the version it found.
| Java version | ATM10 | What happens |
|---|---|---|
| Java 8, 11 or 17 | No | The start script stops before the server launches |
| Java 21 | Yes | Mojang's Java for 1.21.1 and the version the ATM guides list |
| Java 25 | Not recommended | Gets past the start check, but it is the Java of Minecraft 26.1 and newer |
Does ATM10 Work on Java 25?
Java 25 is the Java for Minecraft 26.1 and newer. ATM11, still in beta, runs on Minecraft 26.1.2, and its server files say "Minecraft 26.1.2 requires Java 25". ATM10 is a different pack on Minecraft 1.21.1:
- Official guidance: the ATM guides list Java 21 for Minecraft 1.21+ and do not mention Java 25
- Start script: ATM10's script only checks that the Java version is 21 or higher, so Java 25 gets past the check. That tells you the server will try to start, not that every mod in the pack supports Java 25
- Recommendation: use Java 21 for ATM10 servers, since that is the version Mojang lists for 1.21.1 and the one the pack's guides name
If ATM10 crashes on Java 25, switch the server to Java 21 before you look for any other cause.
How to Check Your Java Version
Run this command:
java -version
Correct output for ATM10 starts like this:
openjdk version "21.0.x"
If you see Java 17 or lower, update before running ATM10. On Debian and Ubuntu, update-alternatives --list java shows the Java versions installed from packages.
Installing Java 21
Ubuntu 22.04 and 24.04, Debian 13
sudo apt update
sudo apt install openjdk-21-jdk -y
java -version
Set as default if multiple Java versions are installed:
sudo update-alternatives --config java
Select Java 21 from the menu.
Debian 12
Debian 12 has no openjdk-21 package; it ships OpenJDK 17. Install Eclipse Temurin 21 from the Adoptium repository instead, with the commands from Adoptium's own guide:
sudo apt install -y wget apt-transport-https gpg
wget -qO - https://packages.adoptium.net/artifactory/api/gpg/key/public | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/adoptium.gpg > /dev/null
echo "deb https://packages.adoptium.net/artifactory/deb $(awk -F= '/^VERSION_CODENAME/{print$2}' /etc/os-release) main" | sudo tee /etc/apt/sources.list.d/adoptium.list
sudo apt update
sudo apt install temurin-21-jdk
RHEL, Rocky Linux and AlmaLinux 9 or 10
sudo dnf install java-21-openjdk-devel
Windows
Download the Temurin 21 installer (.msi) from adoptium.net, which is the download the ATM guide links to. The installer adds Java to your PATH by default. Open a new terminal and verify with java -version.
Make the Start Script Use Java 21
If the machine has Java 25 as its default and you want to keep it that way, the ATM10 start script reads an environment variable named ATM10_JAVA with the full path of the Java to use:
ATM10_JAVA=/usr/lib/jvm/java-21-openjdk-amd64/bin/java sh startserver.sh
That path is where the openjdk-21 package on Ubuntu and Debian 13 puts Java on a 64-bit x86 machine. update-alternatives --list java shows the exact paths on yours.
On a Space-Node Server
If you run ATM10 on Space-Node's ATM10 server hosting, you pick the Java version yourself in the Startup tab of the panel. Pick Java 21. The heap lives in the pack's user_jvm_args.txt, which you edit in the panel's file manager.
JVM Arguments Once Java 21 Is Set
The Java version decides whether ATM10 starts at all. The JVM arguments decide how it runs once it does. The pack's server files ship G1 flags in user_jvm_args.txt with -Xms4G -Xmx8G, and the ATM guide's Java page also offers a Generational ZGC line for Java 21. Both sets, what each flag does and when to switch are in our ATM10 JVM arguments guide, so we do not repeat them here.
The Java-related point to remember is -XX:+ZGenerational in that ZGC line. It arrived with Java 21 (JEP 439), so a server that is secretly still on Java 17 refuses to start with "Unrecognized VM option 'ZGenerational'". On Java 24 and newer the option is obsolete (JEP 490): ZGC is always generational there, and Java prints a warning that it ignores the flag.
How Much RAM to Allocate for ATM10
| Players | Server RAM | Space-Node plan |
|---|---|---|
| 1 to 5 | 12GB | MC Special 1 |
| 5 to 15 | 16GB | MC Special 3 |
| 15+ | 32GB | MC Special 4 |
The official server files set -Xmx8G in user_jvm_args.txt. If your server starts through that file, Java never uses more than 8GB, whatever the plan. Raise it to fit your plan, leaving 2 to 4 GB of the plan free.
Never allocate 100% of available RAM to -Xmx. The operating system needs headroom.
Common Java Errors with ATM10
The start script stops with "Minecraft 1.21 requires Java 21": the script found no Java, or one older than 21. The full line names what it found:
Minecraft 1.21 requires Java 21 - found Java 17
Install Java 21, or point ATM10_JAVA at it as shown above.
java.lang.UnsupportedClassVersionError saying a class "has been compiled by a more recent version of the Java Runtime": you started the server without the script, on a Java that is too old. Class file version 65 means Java 21, and 61 means Java 17.
OutOfMemoryError: Java heap space: the heap is full. Oracle's troubleshooting guide notes that this is often just a heap that is too small for the application, and otherwise a sign that something keeps objects in memory. Raise -Xmx within your plan and restart.
The server crashes right after NeoForge loads, on Java 25: go back to Java 21 first and test again.
FAQ
What Java version does ATM10 use in 2026? Java 21. ATM10 runs on Minecraft 1.21.1 with NeoForge, Mojang lists Java 21 for 1.21.1, and the official start script stops if it finds anything older. Java 17 and older will not work.
Does ATM10 work with Java 25? The start script lets Java 25 through, but the pack's guides list Java 21 for Minecraft 1.21+ and say nothing about Java 25, so stick with Java 21 for stable server operation.
When do I need Java 25 instead? When you run Minecraft 26.1 or newer. Mojang's version files list Java 25 for every 26.x release, so packs on 26.1.2, such as the ATM11 beta, need it.
What JVM flags should I use for ATM10?
Start with the G1 flags the pack's server files already ship and only raise -Xmx. The full comparison with Generational ZGC is in our ATM10 JVM arguments guide.
How much RAM should I set with -Xmx for ATM10? Pick the server by player count first: 12GB for 1 to 5 players, 16GB for 5 to 15, 32GB for 15+. Then set -Xmx to that RAM minus 2 to 4 GB. If the server starts through the pack's user_jvm_args.txt, the shipped -Xmx8G keeps Java at 8GB until you raise it. For a 16 GB server, use -Xmx12G to -Xmx14G.
Can I use Adoptium OpenJDK 21 for ATM10? Yes. The official ATM guides link Adoptium Temurin 21 as the Java 21 download.
Related guides: ATM10 server requirements, ATM10 RAM calculator, ATM9 vs ATM10
Sources
All opened on 31 October 2026, the ATM10 8.4 release on 1 November 2026:
- CurseForge: All the Mods 10, its 8.4 release with ServerFiles-8.4.zip (startserver.sh and user_jvm_args.txt read inside the zip), All the Mods 11 0.13.0-beta (startserver.sh in its server files)
- All The Guides: Java
- Mojang: version manifest (javaVersion of 1.21.1, 26.1, 26.1.2, 26.2 and 26.3)
- NeoForge docs: Getting Started, 1.21 to 1.21.1, Getting Started, 26.1
- OpenJDK: JEP 439, JEP 490, HotSpot arguments.cpp in JDK 17 and in JDK 25, classFileParser.cpp
- Oracle: JVM specification SE 21, class file versions, Troubleshooting memory leaks, Java 21
- Packages: openjdk-21-jdk for Ubuntu 24.04, for Ubuntu 22.04, Debian search, Debian 12 openjdk-17-jdk, openjdk-21-jre-headless file list, Rocky Linux 9 AppStream, AlmaLinux 9 AppStream
- Adoptium: Linux installation, Windows installation
- Red Hat: Installing OpenJDK 21 on RHEL
- update-alternatives(1)