VVersions.dev

Modernize Java

Operational guides for upgrading Java: the Java 21 upgrade hub, LTS-to-LTS migration paths (8→17, 17→21), 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) ship real breaking changes — the module system, removed javax.* Java EE modules, and strong encapsulation of JDK internals. This hub links every supported upgrade path plus the modernizations those upgrades unlock.

What this covers

Start at the Java 21 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

VersionReleasedLTSSupport status
Java 82014-03-18YesSecurity-only
Java 112018-09-25YesMaintenance
Java 172021-09-14YesActive
Java 212023-09-19YesCurrent

Version timeline

  1. 21currentLTSactivereleased 2023-09-19
  2. 17LTSactivereleased 2021-09-14
  3. 11LTSmaintenancereleased 2018-09-25
  4. 8LTSsecurity onlyreleased 2014-03-18

Frequently asked questions

Which Java version should I target?

Java 21 is the current LTS and the recommended target for new and modernizing projects. 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.