WELCOME20 · −20%Claim
MinecraftValheimHytale· SOONPalworld· SOONRust· SOON
Guides / Server Setup

Minecraft Java Version Requirements

The complete reference for every Minecraft version — from 1.8 to 26.x — including mod loader compatibility, JVM flags, and how to update your server.

10 min readUpdated September 22, 2026

Quick Answer

Minecraft 26.3 uses Java 25. Mojang's release metadata also specifies Java 25 for 26.1 and 26.2. Match the runtime to the Minecraft version your pack actually uses, not the newest vanilla release.

Latest
Minecraft 26.3
Java 25
Popular modded
1.20 / 1.21
Java 17 / 21
Legacy
1.8 — 1.16
Java 8

Full Java Version Table

Minecraft has bumped its required Java version multiple times over the years. Running the wrong Java will give you cryptic errors like "Unsupported class file major version" or a server that crashes on startup. Use the table below to match your Minecraft version to the exact Java release you need.

Minecraft VersionRequired JavaRelease Window
26.3 (Wilderness Bound)Java 25September 2026
26.1 (Tiny Takeover)Java 25 (OpenJDK 25)March 2026
26.2 (Chaos Cubed)Java 25June 2026
1.21 / 1.21.xJava 21June 2024 — 2025
1.20.5 / 1.20.6Java 21April 2024
1.20 — 1.20.4Java 17June 2023 — early 2024
1.18 / 1.19Java 17Late 2021 — 2022
1.17 / 1.17.1Java 16June 2021
1.12 — 1.16.5Java 8 (recommended) / 112017 — 2021
1.8 — 1.11.2 (legacy)Java 82014 — 2016

Note on legacy versions

Java 8 is technically end-of-life from Oracle, but the community-maintained Eclipse Temurin (Adoptium) still publishes free Java 8 builds. They are required for RLCraft and other packs locked to 1.12.2.

Current release and modpack requirements

As checked September 22, 2026, Minecraft 26.3 uses Java 25. Minecraft 26.1 introduced that runtime requirement in March. A pack on 1.21.1 still uses its own supported Java version; installing the newest Java globally does not update the pack safely.

The Minecraft launcher bundles the correct Java runtime automatically, so single-player and casual multiplayer users do not need to install anything. Server operators do. If you run a Minecraft server — vanilla, Paper, Spigot, Forge, NeoForge, Fabric, or modded — you need to install Java 25 manually and point your start script at it.

For a deeper dive into the technical changes that came with the Java 25 bump (Generational ZGC, 4 GB default memory, the new year-based version numbering), see our Minecraft 26.1 version explainer.

How to Check Your Java Version

Before you change anything, confirm which Java you have installed. Open a terminal — Command Prompt on Windows, Terminal on macOS or Linux — and run:

# Check default Java
java -version

You should see output like openjdk version "25.0.1" or java version "1.8.0_362". The first number is the version you need to compare against the table above.

Multiple Java Versions on the Same Machine

If you run modpacks across different Minecraft versions, you can have multiple Java versions installed side-by-side. Most server operators do exactly that — Java 8 for legacy RLCraft, Java 17 for 1.20.4, Java 21 for 1.21, Java 25 for 26.1. Just point each server's start script at the right Java binary using its full path.

Where to Download Java

Always download from one of two sources:

  • Eclipse Temurin (Adoptium) — adoptium.net. The community-trusted OpenJDK build. Free, ad-free, no Oracle account required. This is what most server hosts use under the hood.
  • Microsoft OpenJDK — microsoft.com. Microsoft's own OpenJDK build. This is the runtime Mojang now bundles with the Minecraft launcher, so it is the most-tested option for Minecraft specifically.

Avoid Oracle's java.com

Oracle's consumer Java downloads at java.com ship the Oracle JDK, which has restrictive commercial licensing and bundles unwanted extras. For Minecraft server use, stick to Adoptium or Microsoft.

Recommended JVM Flags by Java Version

JVM flags control how the Java virtual machine allocates memory and runs garbage collection. The right flags can dramatically improve server performance. The right flags also depend on your Java version — what worked on Java 8 will not work on Java 25.

Java 8 (Minecraft 1.8 — 1.16) — Aikar's Flags

For legacy modpacks like RLCraft, the gold standard is Aikar's G1GC flags. They reduce stutter from garbage collection on long-running servers:

-Xms6G -Xmx6G -XX:+UseG1GC -XX:+ParallelRefProcEnabled
-XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions
-XX:+DisableExplicitGC -XX:+AlwaysPreTouch
-XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40
-XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20
-XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4
-XX:InitiatingHeapOccupancyPercent=15
-XX:G1MixedGCLiveThresholdPercent=90
-XX:G1RSetUpdatingPauseTimePercent=5
-XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem
-XX:MaxTenuringThreshold=1

Java 17 / 21 (Minecraft 1.18 — 1.21) — Aikar's Flags Still Work

The same Aikar flags work for Java 17 and 21 — G1GC is still the default garbage collector in those Java versions and remains an excellent choice for Minecraft servers. Set -Xms and -Xmx to the same value to lock memory and prevent runtime resizing pauses.

Java 25: use the pack's launcher before tuning

A launcher's garbage-collector choice is not a universal recommendation for every dedicated server. Start with the pack's supplied script and supported Java 25 runtime. Set a memory budget that leaves space for the operating system, then profile before adding collector-specific flags. No collector is guaranteed to outperform another on every modded workload.

java -version

Check the actual Java executable used by the server script or panel, not just your terminal's default. Remove obsolete or conflicting options according to the runtime documentation; do not assume incompatible flags are harmless. Keep a working copy of the launch configuration before experimenting.

Skip the Java Setup Entirely

ModReady automatically uses the right Java version for whatever Minecraft version you pick. No installs, no JVM flags, no troubleshooting — just pick a pack and play.

Start Your Server — $4.99$3.99/mo

Mod Loader Compatibility (Forge, NeoForge, Fabric)

Your mod loader version is locked to your Minecraft version, and your Minecraft version dictates your Java version. So in practice, picking a mod loader build also picks your required Java.

NeoForge

NeoForge is one of several loaders used by modern packs. Use the build shipped with the pack's matching server files. ATM10 on Minecraft 1.21.1 uses Java 21; ATM11 on 26.1.2 uses Java 25. Do not independently change loaders while updating the Java runtime.

Fabric

Fabric separates the Minecraft version, loader version and individual mod versions. Select the combination required by your pack; the presence of a loader download does not prove every mod supports that Minecraft release. See Fabric's Java installation reference for runtime guidance.

Original Forge

Forge continues to publish builds for modern Minecraft, as shown by its official download index. It is not interchangeable with NeoForge. A Forge 1.20.1 pack such as BMC4 should keep its supported Java 17 setup unless its author documents a different requirement.

For step-by-step setup of any mod loader on your server, see our mod installation guide.

Why Minecraft Keeps Changing Java Versions

Minecraft has bumped its Java requirement five times in the last six years — Java 8 to 11 (briefly), then 16, then 17, then 21, now 25. There are three reasons Mojang keeps moving up:

  • Performance — Each Java release ships better garbage collectors. The Java 21 → 25 jump alone reduces tick stutter on big servers by 20-30% in real-world testing thanks to Generational ZGC.
  • Language features — Newer Java versions give Mojang developers more expressive code (records, pattern matching, sealed classes). Smaller codebase, fewer bugs.
  • Security and maintenance — Older Java versions stop receiving security patches. Mojang cannot ship a game on a runtime nobody is patching.

The cadence has roughly doubled in pace since the Microsoft acquisition. Expect another bump around 2027 or 2028, likely to Java 29 (LTS).

Frequently Asked Questions

What Java version does Minecraft 26.1 need?

Minecraft 26.1 needs Java 25 (OpenJDK 25). Earlier Java versions like Java 21 or Java 17 will not start a 26.1 server.

What Java version does Minecraft 26.3 need?

Mojang's version metadata specifies Java 25 for Minecraft 26.3. This was checked September 22, 2026. For a modpack, use the Minecraft version listed in the pack files rather than substituting 26.3.

Can I run Minecraft 1.20.1 with Java 21?

Yes — Java 21 is backwards compatible with code written for Java 17. Vanilla 1.20.1 will run fine on Java 21. However, many 1.20.1 mods were compiled against Java 17 and will throw warnings or break on Java 21. For modded 1.20.1 servers, stick to Java 17.

What Java version does RLCraft need?

RLCraft is locked to Minecraft 1.12.2, which requires Java 8. Newer Java versions will not run RLCraft. See our RLCraft setup guide for the exact steps.

Sources and safe updates

Runtime entries for 26.1, 26.2 and 26.3 were verified against the release JSON files linked by Mojang's version manifest. See the 26.3 release briefing for context and the safe modpack update guide before changing an existing server.

Is it Minecraft 1.26.1 or 26.1?

The correct version is 26.1. Mojang dropped the "1." prefix starting in 2026. There is no "Minecraft 1.26.1."

Will Java 25 work for older Minecraft versions like 1.21?

Vanilla 1.21 will technically launch on Java 25, but mod loaders (NeoForge, Fabric) for 1.21 were built against Java 21 and may behave unpredictably on Java 25. For 1.21 modded servers, install Java 21 alongside Java 25 and point that server's start script at the Java 21 binary.

How do I update my Minecraft server to a new Java version?

Three steps: (1) download the new Java from Adoptium; (2) edit your server start script (start.sh or start.bat) so the java command uses the full path to the new install; (3) update JVM flags to match the new Java version (drop Aikar's flags when moving to Java 25 and use ZGC instead). Restart and check the console for any errors.