Guidefor server owners4 min read
Which Java version does each Minecraft release need?
Java 25 from 26.1, Java 21 for 1.20.5 to 1.21.11, Java 17 from 1.18, Java 8 below that. The full table for every version in our 903 row spine.
The short version
| Minecraft versions | Required Java | Range opens with | Releases in range |
|---|---|---|---|
| 26.1 and later | 25 | 26.1, 24 March 2026 | 4 |
| 1.20.5 to 1.21.11 | 21 | 1.20.5, 23 April 2024 | 14 |
| 1.18 to 1.20.4 | 17 | 1.18, 30 November 2021 | 13 |
| 1.17 and 1.17.1 | 16 | 1.17, 8 June 2021 | 2 |
| 1.0 to 1.16.5 | 8 | 1.0, 17 November 2011 | 66 |
These are not rules of thumb. Each number is the Java major version Mojang states in the per version metadata for that release. Of the 903 Minecraft versions in our version spine, 885 carry a stated Java major: 552 rows on Java 8, 144 on Java 17, 119 on Java 21, 45 on Java 25 and 25 on Java 16. Those counts include snapshots, pre releases and release candidates, which is why they are much larger than the release counts in the table above.
Java 25 era: 26.1 and later
26.1 was the first calendar version and replaced what would have been 1.22. Every calendar
era row we hold requires Java 25, all 45 of them, from 26.1-snapshot-1 on 16 December 2025
through the current 26.3-snapshot-5. There is no split inside the calendar era so far.
The four calendar releases are 26.1, 26.1.1, 26.1.2 and 26.2.
26.2 shipped on 16 June 2026 and speaks protocol 776. Java 25 is a long term
support line, and the newest Temurin 25 general availability release in our Adoptium data is
jdk-25.0.3+9.
Java 21 era: 1.20.5 to 1.21.11
1.20.5, released 23 April 2024, raised the requirement to Java 21. Fourteen releases sit in this band, ending at 1.21.11 on 9 December 2025, which is the last release in the 1.x line. Counting snapshots and candidates, 119 versions state Java 21.
This band is where most existing servers still are, and it is the one that gets confused with the calendar era. A 1.21.x server does not run on the Java requirement of 26.2, and a 26.2 server does not run on the Java 21 you installed for 1.21.8. Protocol numbers do not help you here either: 1.21.7 and 1.21.8 share protocol 772 and their clients and servers interoperate, yet a shared protocol says nothing about the runtime.
Java 17 era: 1.18 to 1.20.4
Thirteen releases from 1.18 on 30 November 2021 to 1.20.4 on 7 December 2023 state Java 17, and 144 versions in total once snapshots are included.
Note where the boundary falls. 1.20.4 wants Java 17 and 1.20.5 wants Java 21, so the requirement changed inside the 1.20 line rather than at a version people would think of as a major boundary. "The 1.20 series needs Java 17" is wrong for half of that series. Check the exact patch version, never the series.
Java 8 and 16 for older releases
1.17 and 1.17.1 are the only two releases that state Java 16, a line that never received long
term support and that Adoptium last shipped as jdk-16.0.2+7. In practice most people run
those two on Java 17 instead.
Everything from 1.0 on 17 November 2011 through 1.16.5 on 14 January 2021 states Java 8, which
is 66 releases and 552 version rows. Eighteen rows from mid 2013 carry no Java major at all,
from 13w24a to 13w38c, including the 1.6.1, 1.6.2 and 1.6.4 releases. Mojang's metadata for
those files predates the field rather than declaring anything unusual, and Java 8 is the
correct runtime for them.
Minimum is not the same as maximum
The stated major is a floor, not a pin. Java class files are forward loadable: a jar compiled for one class file version runs on any runtime that recognises that version or a higher one. That is why a 1.21.8 server usually starts on Java 25 even though it asks for 21.
What breaks it is everything outside the class file format. Older server jars, older plugin
stacks and older mod loaders reach into JDK internals that later releases removed or closed
off, use agents that changed shape, or depend on the security manager. The failure then is a
NoSuchMethodError, an InaccessibleObjectException or a startup crash inside a library,
not a clean version message.
A workable policy: for anything below 1.17, run exactly Java 8. For 1.18 and later, the stated major is safe, and one long term support line above it is usually fine if you test it against a copy of your world and your full plugin set first. The detail is in running old Minecraft versions on newer Java.
Full table for every version
The complete table is the site itself rather than a block of markdown. Every one of the 903 versions has a page carrying its Java requirement next to its protocol version, data version and official jar link, for example Minecraft 26.2. The version index lists them all in chronological order across both eras, and the Java version checker answers the single version case directly. Each Java page works the other way around and lists the Minecraft versions that require that runtime, alongside the Temurin builds we track for it.
What could change
The calendar era boundary is the thing to watch. Every 26.3 snapshot so far still states Java
25, so the next release is expected to keep that floor, but Mojang has moved the floor mid
series before, as 1.20.4 to 1.20.5 shows. Adoptium already publishes Java 26 as
jdk-26.0.1+8, which is not a long term support line, so a move there would be a change of
kind rather than a routine bump.
To check the current answer yourself, open the version page for your exact patch version on
the version index, or read the javaVersion.majorVersion field in
Mojang's per version JSON, which is what this site imports. Our data resyncs from the Mojang
manifest and the Adoptium API automatically, so the version pages update before this guide is
next reviewed.