VVersions.dev

Modernize Java

Operational guides for upgrading Java: the Java 25 upgrade hub, LTS-to-LTS migration paths (8→17, 17→21, 21→25, 17→25), AutoValue-to-records modernization, and the breaking changes each jump surfaces.

Last verified · Updated May 22, 2026

Java's LTS-to-LTS jumps (8 → 11 → 17 → 21 → 25) ship real breaking changes — the module system, removed javax.* Java EE modules, and strong encapsulation of JDK internals. Java 25 (GA 2025-09-16) is the current LTS target; Java 26 (GA 2026-03-17) is the latest non-LTS major. This hub links every supported upgrade path plus the modernizations those upgrades unlock.

What this covers

Start at the Java 25 upgrade hub for the full breaking-change picture, then pick the source-to-target page that matches the LTS you are on today. Each page includes a repo-inspection prompt, step-by-step migration, a test plan, and rollback guidance.

Java LTS support matrix

VersionReleasedLTSOracle Premier Support untilSupport status
Java 82014-03-18YesMarch 2022Security-only
Java 112018-09-25YesSeptember 2023Maintenance
Java 172021-09-14YesSeptember 2026Active (Premier ending)
Java 212023-09-19YesSeptember 2028Active
Java 252025-09-16YesSeptember 2030Current LTS

Version timeline

  • 25 — current, LTS, active (released 2025-09-16 · EOL 2030-09-30)
  • 21 — LTS, active (released 2023-09-19 · EOL 2028-09-30)
  • 17 — LTS, active (released 2021-09-14 · EOL 2026-09-30)
  • 11 — LTS, maintenance (released 2018-09-25)
  • 8 — LTS, security_only (released 2014-03-18)

Java migration paths

Frequently asked questions

Which Java version should I target?

Java 25 is the current LTS (GA 2025-09-16, Oracle Premier Support to September 2030) and the recommended target for new and modernizing projects. Java 21 remains a supported LTS through September 2028. If you are on Java 8, plan a stop at 17 first — the module system, removed Java EE modules, and strong encapsulation all land between 8 and 17, so splitting the work de-risks it. Java 26 is a six-month non-LTS release, so most production teams stay on the latest LTS rather than chasing it.

I'm on Java 17 — is it still supported?

Yes, but Oracle Premier Support for Java 17 ends in September 2026, and public updates already moved to the Java SE OTN license in October 2024. Java 17 → 25 is a small, mostly additive LTS step, so it's a good time to plan the jump to the current LTS.