All posts
Legacy Modernization

Still on Java 8 or 11? Upgrading to Java 21 or 25, with Corretto Support Dates

By

October 25, 2026

6 min read

Amazon Corretto keeps Java 8 patched until December 2030 and Java 11 until January 2032, so the deadline is not the JDK. It is everything around it: Spring Boot 2, javax packages, old Lambda runtimes and the libraries that stopped supporting Java 8 years ago. What the upgrade involves and the order we do it in.

Java
Amazon Corretto
Spring Boot
Java 21
Java 25
Migration

Corretto support dates

Version

Corretto support until

Corretto 8

December 2030

Corretto 11

January 2032

Corretto 17

October 2029

Corretto 21

October 2030

Corretto 25

October 2032

From the Amazon Corretto FAQ. Corretto is free, with quarterly updates.

So a Java 8 application can stay patched for years. The reason to move is the ecosystem: frameworks and libraries have dropped Java 8 and 11, which means no security fixes in the libraries even while the JDK is patched. Spring Boot 3 requires Java 17, and most new library releases target 17 or 21.

Want a second opinion on this for your system?

Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.

What the upgrade involves

  • From 8: removed APIs and modules (JAXB, JAX-WS and others left the JDK in 11) need explicit dependencies; reflective access to internals breaks under strong encapsulation.

  • Spring Boot 2 to 3: javax.* to jakarta.* across the codebase, Spring Security configuration changes, and Hibernate 6.

  • Build tooling: Maven and Gradle plugins and bytecode tools must support the target version.

  • Runtime: Lambda's Java runtimes on Amazon Linux 2 reach deprecation in June 2027; move functions to the java21 runtime or newer, on Amazon Linux 2023. Container base images move to a current Corretto.

What you get

  • Virtual threads (Java 21), which let blocking-style code handle far more concurrent requests, often removing the need for reactive rewrites.

  • Better garbage collectors and startup, including Lambda SnapStart for faster cold starts.

  • Graviton: current JDKs perform well on Arm, which is usually cheaper per request.

Order of work

  1. Get the build running on the target JDK while still compiling for the old version, and fix the tooling first.

  2. Upgrade frameworks (Spring Boot 3, Hibernate 6) in a branch, using automated refactoring such as OpenRewrite recipes for javax to jakarta.

  3. Raise the compile target and run the full test suite and a load test.

  4. Move the runtime: container image, Lambda runtime, or EC2 AMI.

hoolco Monthly Review

Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.

As of October 25, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.