Home

Release timeline

Java versions: LTS releases, end of life, support dates and which to pick

Six vendors, five LTS lines, and support dates that differ by years. Here is the full table, plus a plain answer on which Java version to run.

Figures checked November 2026Sources linked on the page

8GA 2014Temurin to Dec 2030+
11GA 2018Corretto to Jan 2032
17GA 2021Oracle Premier ended Sep 2026
21GA 2023Oracle Premier to Sep 2028
25GA Sep 2025Newest LTS, Premier to Sep 2030
29Planned Sep 2027Next LTS on the roadmap

Of all the Java versions released since 2014, most production code runs on one of five LTS releases: 8, 11, 17, 21 or 25. The version number alone tells you little about how long you are covered, though. Support depends on whose build of the JDK you installed, and the gap between vendors is wide: Java 11 gets updates from Red Hat until January 2032 under extended support, while Eclipse Temurin only commits to October 2027.

Figures checked in November 2026.

Java LTS versions and support dates

The table lists the date each vendor stops shipping updates for the Java LTS versions still in use. For Oracle there are two rows, because Oracle sells Extended Support after Premier Support ends. Red Hat also lists two dates: end of full support, then end of its first extended lifecycle phase (ELS-1).

Vendor / build Java 8 Java 11 Java 17 Java 21 Java 25
Oracle JDK, Premier Support March 2022 September 2023 September 2026 September 2028 September 2030
Oracle JDK, Extended Support December 2030 January 2032 September 2029 September 2031 September 2033
Eclipse Temurin (Adoptium) at least Dec 2030 at least Oct 2027 at least Oct 2027 at least Dec 2029 at least Sep 2031
Amazon Corretto December 2030 January 2032 October 2029 October 2030 October 2032
Azul (Core / Prime), Production Support Dec 2030 Jan 2032 Sept 2029 Sept 2031 Sept 2033
Microsoft Build of OpenJDK not offered September 2027 September 2027 September 2028 September 2030
Red Hat build of OpenJDK, full / ELS-1 Nov 30, 2026 / Dec 31, 2032 Oct 31, 2024 / Jan 31, 2032 Dec 31, 2027 / Jan 31, 2029 Dec 31, 2029 / Sep 30, 2031 Dec 31, 2030 / Sep 30, 2033

Azul adds two more years of Extended Support on top of the Production Support dates shown. Microsoft states its dates as the earliest end of support, so they may move later. Temurin publishes "at least" dates for the same reason.

Two things stand out. The free community builds (Temurin, Microsoft) usually stop earlier than the commercial vendors, and Amazon is unusually generous for a free build: Corretto 11 runs to January 2032, the same month as Oracle's paid Extended Support. Which build is free to use where is a licensing question, covered separately on the OpenJDK vs Oracle JDK licensing page.

What LTS means and how the cadence works

A new Java feature release ships every six months, in March and September. That rhythm comes from JEP 322, which moved Java to time-based versioning in 2018. Each feature release gets update releases one month later and then every three months, which is why vendors such as Microsoft ship patches in January, April, July and October.

Most of those releases are short-lived by design. Amazon Corretto 27, a feature release, reached GA on September 15, 2026 and hits end of life in April 2027. Seven months.

LTS, long-term support, is a label vendors put on selected Java versions and then patch for years. Every fourth feature release is an LTS now, which puts one LTS out every two years: Java 21 in September 2023, Java 25 in September 2025, and Java 29 planned for September 2027 on both the Oracle and Azul roadmaps. JDK 28 is in early access. The label is a vendor promise, not a property of the code, which is exactly why the table above has seven rows and not one.

Java 25: the current LTS

Java 25 reached GA in September 2025 and is the newest LTS. On support dates alone it is the obvious default: every vendor in the table covers it until at least September 2030, and Oracle, Azul and Red Hat go to September 2033.

The platforms you deploy to have already moved. On Heroku the Java buildpack for the heroku-24 and heroku-26 stacks defaults to the "Latest LTS (currently OpenJDK 25)". AWS Elastic Beanstalk lists Java SE platforms on Corretto 25, 21 and 17 for Amazon Linux 2023, and its Tomcat platform pairs Corretto 25 with Tomcat 11.0.27. WildFly 42 recommends Java SE 25 as its JDK, with one wrinkle worth reading twice: the WildFly team claims Jakarta EE 11 compatibility on Java 17 and 21, and does not claim it on 25.

The non-LTS JDK 27 is newer still. Its release notes list nine features, among them G1 as the default garbage collector in all environments, compact object headers by default, and post-quantum hybrid key exchange for TLS 1.3. Those land in the next LTS too, so most teams can simply wait for Java 29.

Java 17 end of life by vendor

Java 17 is where many teams sit right now. The Java 17 end of life date you hear most often comes from Oracle, and the headline news is that Oracle Premier Support for it ended in September 2026. That sounds worse than it is. Oracle Extended Support runs to September 2029, Corretto to October 2029, Azul to September 2029, and Red Hat keeps full support until December 31, 2027. The short ones are Microsoft (September 2027) and Temurin (at least October 2027).

So if you run Temurin 17, the committed date is October 2027 and the upgrade belongs on this year's plan. If you run Corretto 17, the pressure is lower. Note also that Oracle's own free commercial use of Java 17 ended earlier, in September 2024, according to the Azul roadmap; Azul lists the same cut-off for Oracle Java 21 as September 2026.

Java 8 end of life by vendor

Java 8 refuses to die, and the vendors keep extending it, so the Java 8 end of life date also depends entirely on the build. Oracle Premier Support ended in March 2022, yet Oracle Extended Support, Corretto, Azul and Temurin all carry Java 8 to December 2030. Red Hat ends full support on November 30, 2026 and moves Java 8 into ELS-1 until December 31, 2032, the longest date in the whole table. Microsoft never built Java 8 at all.

One detail catches people out: Amazon stopped shipping JavaFX in Corretto 8 on March 31, 2026. A desktop app on Corretto 8 that uses JavaFX needs a separate JavaFX runtime or a move to a newer JDK.

Which of the Java versions to pick

For a new app, pick Java 25. Among the Java LTS versions it has the longest runway. The servers you are likely to use need a fairly recent JDK anyway: Tomcat 11 and Jetty 12 need Java 17 or newer, GlassFish 8 needs Java 21.

For a legacy app, the choice is about what the app depends on. A javax-based web app on Tomcat 9 (Servlet 4.0) still runs on Java 8, and Maven 3.10 still runs on JDK 8 too. Moving to Tomcat 10.1 or 11 means the switch from the javax to the jakarta namespace, which is a code change, not a config change. A sensible path for most legacy apps is two steps: first move the JVM to 17 or 21 while keeping the old server branch, then deal with the namespace move separately. Mixing both in one release makes failures hard to trace.

For apps you rarely touch, pick the build with the longest date on your version. On Java 11 that means Corretto or a paid vendor. On Java 8, Red Hat's ELS-1 is the outlier at 2032.

Before you deploy, check which JDK your host provides by default; the Java hosting comparison lists how each provider runs Java, and the deployment guide shows how to pin the version in a buildpack or Dockerfile so a platform update cannot change it under you.

Upcoming Temurin update releases follow the same quarterly rhythm. The builds listed in August 2026 were jdk-25.0.4.1, jdk-21.0.12.1, jdk-17.0.20.1, jdk-11.0.32.1 and jdk8u504, and Adoptium scheduled the October round as jdk-25.0.5, jdk-21.0.13, jdk-17.0.21, jdk-11.0.33 and jdk8u511. Five LTS lines, patched in lockstep, four times a year.

Sources

  1. oracle.com/java/technologies/java-se-support-roadmap.html
  2. adoptium.net/support
  3. aws.amazon.com/corretto/faqs
  4. azul.com/products/azul-support-roadmap
  5. learn.microsoft.com/en-us/java/openjdk/support
  6. access.redhat.com/articles/1299013
  7. openjdk.org/projects/jdk/27
  8. openjdk.org/jeps/322
  9. jdk.java.net
  10. devcenter.heroku.com/articles/java-support
  11. docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html
  12. tomcat.apache.org/whichversion.html
  13. wildfly.org/news/2026/10/22/WildFly-42-is-released
  14. maven.apache.org/download.cgi

Java & licenses / FAQ

Good questions.
Clear answers.

Which Java version should a new project use?

Java 25. It is the newest LTS release (GA September 2025), every major free build supports it until at least 2030 or later, and current servers such as Tomcat 11, Jetty 12 and WildFly 42 run on it. Heroku already defaults new Java apps to the latest LTS, which is OpenJDK 25.

When is Java 8 end of life?

It depends on whose build you run. Oracle Premier Support ended in March 2022, but Oracle Extended Support, Amazon Corretto, Azul and Eclipse Temurin all run to December 2030. Red Hat ends full support on November 30, 2026 and offers ELS until December 31, 2032. Microsoft never shipped a Java 8 build.

Is Java 17 end of life now?

Not across the board. Oracle Premier Support for Java 17 ended in September 2026, but Extended Support runs to September 2029. Corretto supports it to October 2029, Azul to September 2029, Temurin at least to October 2027 and Microsoft to September 2027. Planning a move to Java 21 or 25 within a year or two is still sensible.

How often do new Java versions come out?

A feature release ships every six months, in March and September. Every fourth one is an LTS release, so an LTS arrives every two years: Java 21 in 2023, Java 25 in 2025, and Java 29 is planned for September 2027 on the Oracle and Azul roadmaps. Update releases follow quarterly.

Are non-LTS versions like JDK 27 safe for production?

They are full-quality releases, but short-lived. Amazon Corretto 27 reached GA on September 15, 2026 and reaches end of life in April 2027, so you would need to move to JDK 28 within months. Use them if you upgrade every six months anyway; otherwise stay on an LTS.

Find your next step.