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
- oracle.com/java/technologies/java-se-support-roadmap.html
- adoptium.net/support
- aws.amazon.com/corretto/faqs
- azul.com/products/azul-support-roadmap
- learn.microsoft.com/en-us/java/openjdk/support
- access.redhat.com/articles/1299013
- openjdk.org/projects/jdk/27
- openjdk.org/jeps/322
- jdk.java.net
- devcenter.heroku.com/articles/java-support
- docs.aws.amazon.com/elasticbeanstalk/latest/platforms/platforms-supported.html
- tomcat.apache.org/whichversion.html
- wildfly.org/news/2026/10/22/WildFly-42-is-released
- maven.apache.org/download.cgi
