
The current Java version is Java 27, released on September 15, 2026.
The current LTS version is Java 25, released on September 16, 2025.
The next two versions are already scheduled:
- Java 28 will be released on March 9, 2027.
- Java 29 is expected in September 2027 and will be the next LTS version.
In this article, you’ll find all Java versions from Java 1.0 to Java 29 with their release dates, and when the LTS versions reach their end of support at the major vendors. Every version from Java 9 to Java 28 links to an article about its new features. You’ll also learn which version I recommend for a new project – and until when your existing version gets updates.
What Does LTS Mean in Java?
LTS stands for Long-Term Support. An LTS version gets security updates and bug fixes for many years; a version without LTS, for only six months.
Since Java 9, a new Java version has been released every six months, in March and in September. The date is fixed years in advance. If a feature isn’t ready by then, the release isn’t postponed – the feature ships in a later version.
Before that, a version was released only once its major features were finished – which is why we waited almost five years for Java 7, almost three for Java 8, and three and a half for Java 9.
Which version is an LTS version, however, isn’t decided by the OpenJDK project. It maintains each version only until the next one. Oracle, for example, offers its OpenJDK builds on jdk.java.net for Java 25 only up to the January 2026 update – four months after the release.
“LTS” is an arrangement among the vendors that ship Java builds: they keep supplying selected versions with updates for years. How long is up to each vendor. That’s why an LTS version has no single end of support, but one per vendor – you’ll find the dates in the section How Long Is Each Java Version Supported?
Since Java 17, every fourth version has been an LTS version, i.e., one every two years: Java 17, 21, 25, and presumably 29. Before that, there were three years between Java 11 and Java 17 and four and a half years between Java 8 and Java 11.
Java 8 also counts as an LTS version, even though it was released before the six-month cadence: Oracle lists Java 8, 11, 17, 21, and 25 as LTS versions. Sun and later Oracle maintained older versions for years as well – but Oracle uses the term LTS only from Java 8 on.
What does that mean for you?
- On an LTS version, you can stay for years and still get security updates.
- On a version without LTS, you have to move to the next one every six months, or you stop getting updates. In return, you get new features up to two years earlier.
All Java Versions with Release Dates
The following table shows all Java versions from Java 1.0 to Java 29 with the day they were released – for Java 28 and Java 29, with the planned or expected date. Java 9 to Java 28 link to the article that describes their new features.
Up to and including Java 5, the Java versions had different names. The name in parentheses is the one Sun released them under at the time. From Java 1.2 to Java 5, Sun called the platform “Java 2,” hence the “2” in J2SE (Java 2 Platform, Standard Edition). With Java 6, Sun dropped the confusing “2”: with “Java 2 Platform, Standard Edition 6,” many would have wondered when Java 3, 4, and 5 were coming.
The LTS column shows a dash for the versions before Java 8 because the term didn’t exist back then.
The LTS versions are highlighted in color. The last column shows until when a version gets updates – free and with a paid support contract, each at the vendor that supplies them the longest. You’ll find out which vendors those are in the section How Long Is Each Java Version Supported?
Java 6 and 7, by the way, still get updates today – paid, from Azul, for customers with Legacy Production Support, until December 2029.
| Version | Released | LTS | Updates until |
|---|---|---|---|
| Java 1.0 (JDK 1.0) | January 23, 1996 | – | ended |
| Java 1.1 (JDK 1.1) | February 19, 1997 | – | ended |
| Java 1.2 (J2SE 1.2) | December 8, 1998 | – | ended |
| Java 1.3 (J2SE 1.3) | May 8, 2000 | – | ended |
| Java 1.4 (J2SE 1.4) | February 6, 2002 | – | ended |
| Java 5 (J2SE 5.0) | September 30, 2004 | – | ended |
| Java 6 | December 11, 2006 | – | free: ended paid: December 2029 |
| Java 7 | July 28, 2011 | – | free: ended paid: December 2029 |
| Java 8 | March 18, 2014 | yes | free: December 2030 paid: December 2032 |
| Java 9 | September 21, 2017 | no | ended |
| Java 10 | March 20, 2018 | no | ended |
| Java 11 | September 25, 2018 | yes | free: January 2032 paid: March 2032 |
| Java 12 | March 19, 2019 | no | ended |
| Java 13 | September 17, 2019 | no | ended |
| Java 14 | March 17, 2020 | no | ended |
| Java 15 | September 15, 2020 | no | ended |
| Java 16 | March 16, 2021 | no | ended |
| Java 17 | September 14, 2021 | yes | free: October 2029 paid: March 2030 |
| Java 18 | March 22, 2022 | no | ended |
| Java 19 | September 20, 2022 | no | ended |
| Java 20 | March 21, 2023 | no | ended |
| Java 21 | September 19, 2023 | yes | free: October 2030 paid: March 2032 |
| Java 22 | March 19, 2024 | no | ended |
| Java 23 | September 17, 2024 | no | ended |
| Java 24 | March 18, 2025 | no | ended |
| Java 25 | September 16, 2025 | yes | free: October 2032 paid: March 2034 |
| Java 26 | March 17, 2026 | no | ended |
| Java 27 | September 15, 2026 | no | free: April 2027 paid: September 2027 |
| Java 28 | March 9, 2027 (planned) | no | – |
| Java 29 | September 2027 (expected) | yes (expected) | – |
When Will the Next Java Version Be Released?
Java 28 will be released on March 9, 2027. The schedule on the OpenJDK project page has five milestones:
- December 3, 2026: Rampdown Phase One – the so-called feature freeze. Java 28 is branched off the main line and takes no new features from this day on. Only bugs of the three highest priority levels get fixed.
- January 14, 2027: Rampdown Phase Two. Only bugs of the two highest priority levels get fixed, and every fix needs approval.
- February 4, 2027: Start of the Release Candidate Phase. Only bugs of the highest priority level get fixed, again only with approval.
- February 16, 2027: Release Candidate Build – the build that is to be released as Java 28 if no more critical bugs turn up.
- March 9, 2027: General Availability – Java 28 is released.
I describe the features Java 28 brings in the article Java 28 Features.
The feature freeze is always about three months before the release: early December for the March version, early June for the September version.
Java 29 is expected in September 2027 – there is no schedule yet. Oracle lists Java 29 as the next LTS version in its Java SE Support Roadmap, noting that dates and LTS designation may still change. According to Oracle’s plan, the LTS version after that would be Java 33 in September 2029.
How Long Is Each Java Version Supported?
How long you get updates for a Java version doesn’t depend on the version, but on the distribution – the Java build of a particular vendor. All distributions build on the OpenJDK source code. They differ in how long and on what terms the vendor supplies them with updates.
There are two kinds of updates:
- Free updates: The vendor publishes security updates that anyone may download and use in production.
- Paid support: Updates and assistance are available only to customers with a paid contract.
The updates themselves are mostly developed jointly in the OpenJDK project: the OpenJDK Vulnerability Group fixes security vulnerabilities, and developers from several companies maintain the update branches of each version. All vendors build from this state and publish their updates on the same quarterly date. When the joint maintenance of a version ends, some vendors continue it on their own – which is why free updates last longer at some vendors than at others.
An end of support, by the way, doesn’t stop any application. It keeps running – it just doesn’t get security updates anymore.
The following timeline shows how far the updates reach for each LTS version. Each bar starts on the version’s release date and has up to three segments: the free updates as long as the OpenJDK project maintains the version (with Eclipse Temurin and IBM Semeru), then the period only Amazon Corretto still covers for free, and finally the period in which updates are available only with a support contract – up to the latest contract end at Oracle, Red Hat, Azul, or BellSoft. For every LTS version, Corretto supplies free updates the longest. The dashed line marks where we are today. The exact dates per vendor are in the tables below.
For Java 11, Corretto’s free updates reach almost as far as the longest support contract: until January 2032, BellSoft’s contract until March 2032. For Java 8, the free updates at Temurin and Corretto end at the same time, in December 2030.
Free Updates
The following table shows until when five distributions supply their LTS versions with free updates:
- Eclipse Temurin from the vendor-neutral Adoptium project of the Eclipse Foundation. Adoptium states its dates as a minimum (“at least”).
- Amazon Corretto from Amazon.
- Microsoft Build of OpenJDK from Microsoft. Microsoft states its dates as the earliest end, which may still move. Microsoft doesn’t build its own Java 8 and refers to Temurin instead.
- IBM Semeru Runtimes from IBM. Semeru combines the OpenJDK class libraries with the Eclipse OpenJ9 JVM instead of HotSpot – and with it, its own garbage collectors: the default is gencon instead of G1.
- SapMachine from SAP. SapMachine maintains LTS versions for at least four years and doesn’t build Java 8.
| Version | Eclipse Temurin | Amazon Corretto | Microsoft Build of OpenJDK | IBM Semeru | SapMachine |
|---|---|---|---|---|---|
| Java 8 | December 2030 | December 2030 | no own build | December 2030 | no own build |
| Java 11 | October 2027 | January 2032 | September 2027 | October 2027 | ended (December 2024) |
| Java 17 | October 2027 | October 2029 | September 2027 | October 2027 | ended (September 2026) |
| Java 21 | December 2029 | October 2030 | September 2028 | December 2029 | September 2028 |
| Java 25 | September 2031 | October 2032 | September 2030 | September 2031 | September 2030 |
Temurin and Semeru have the same dates: both supply updates as long as the OpenJDK project itself maintains the version. Amazon continues the maintenance on its own after that and therefore supplies updates longer for every LTS version except Java 8 – for Java 11, more than four years longer: Corretto 11 gets updates until January 2032, Temurin 11 until October 2027.
Paid Support
With a paid support contract, you get updates for longer. The following table shows four vendors:
- Oracle: first Premier Support, then Extended Support, for which Oracle normally charges an additional fee.
- Red Hat: first Full Support, then the Extended Life Cycle Support Phase (ELS-1), which requires a separate subscription.
- Azul: the end of Production Support for Azul Zulu as part of Azul Core. After that, Azul offers two more years of Extended Support – it helps with the migration to a newer version but no longer delivers updates. Azul states no separate end for the free Zulu builds.
- BellSoft: the end of commercial support for Liberica. BellSoft states no end for the free Liberica builds.
For Oracle and Red Hat, the second stage is shown in parentheses below the first.
Temurin, Corretto, Microsoft, Semeru, and SapMachine don’t extend updates beyond the dates in the free-updates table, not even for a fee.
| Version | Oracle JDK | Red Hat | Azul Zulu | BellSoft Liberica |
|---|---|---|---|---|
| Java 8 | March 2022 (extended: December 2030) | November 2026 (extended: December 2032) | December 2030 | March 2031 |
| Java 11 | September 2023 (extended: January 2032) | October 2024 (extended: January 2032) | January 2032 | March 2032 |
| Java 17 | September 2026 (extended: September 2029) | December 2027 (extended: January 2029) | September 2029 | March 2030 |
| Java 21 | September 2028 (extended: September 2031) | December 2029 (extended: September 2031) | September 2031 | March 2032 |
| Java 25 | September 2030 (extended: September 2033) | December 2030 (extended: September 2033) | September 2033 | March 2034 |
For Java 8, 11, and 17, Oracle currently waives the additional fee for Extended Support – for Java 17 from October 2026 to September 2029. Red Hat ends Full Support for Java 8 on November 30, 2026.
There are other Java builds the two tables don’t show, such as GraalVM and the OpenJDK packages of Linux distributions like Debian and Ubuntu.
Versions Without LTS
A version without LTS gets updates at all vendors only until the next version is released. Red Hat and Microsoft don’t build them at all.
Java 27, for example, reaches its end of support at Oracle, Adoptium, and Azul in March 2027, at Amazon in April 2027. If you use such a version, you have to switch twice a year.
Java 8 (LTS)
Java 8 was released on March 18, 2014. Free updates are available at Temurin and Corretto until December 2030.
Since April 2019, the Oracle JDK 8 has been free only for personal use and development, no longer in production. Red Hat ends Full Support on November 30, 2026.
Java 11 (LTS)
Java 11 was released on September 25, 2018. Free updates are available at Temurin until October 2027, at Microsoft until September 2027, and at Corretto until January 2032.
The Oracle JDK 11 was never free in production. At Red Hat, Full Support for Java 11 ended on October 31, 2024.
Java 17 (LTS)
Java 17 was released on September 14, 2021. Free updates are available at Temurin until October 2027, at Microsoft until September 2027, and at Corretto until October 2029.
The Oracle JDK 17 is free up to and including version 17.0.12. Since version 17.0.13 from October 2024, it has been under the paid OTN license, and since September 30, 2026, Java 17 has been out of Oracle’s Premier Support.
Java 21 (LTS)
Java 21 was released on September 19, 2023. Free updates are available at Microsoft until September 2028, at Temurin until December 2029, and at Corretto until October 2030.
The Oracle JDK 21 is free up to and including version 21.0.12. Since version 21.0.13 from October 20, 2026, it has been under the paid OTN license.
Java 25 (LTS)
Java 25 was released on September 16, 2025, and is the current LTS version. Free updates are available at Microsoft until September 2030, at Temurin until September 2031, and at Corretto until October 2032.
The Oracle JDK 25 is free for all updates until September 2028, i.e., until one year after Java 29, the LTS version expected for September 2027.
Oracle JDK: What Is Free?
With the Oracle JDK, you have to keep two questions apart: do you get updates (support)? And may you use the JDK for free (license)?
Oracle ships two different builds:
- Oracle OpenJDK on jdk.java.net: open source under the GPL with the Classpath Exception – it lets you release programs that use the JDK’s class library under a license of your choice, i.e., also without open source code – and free for everyone. Updates, however, are available there only until shortly before the next version – for Java 25, for example, until January 2026.
- Oracle JDK: under an Oracle license that depends on the particular version.
Depending on the version, three licenses apply to the Oracle JDK:
- Up to Java 8: free in production as well, until Oracle ended public updates in January 2019. Since version 8u211 from April 2019, Java 8 has been under the OTN license (Oracle Technology Network License Agreement): free only for personal use, development, testing, and demonstrations.
- Java 11 to 16: under the OTN license from the start, so never free in production.
- From Java 17: under the No-Fee Terms and Conditions (NFTC), which also allow use in production. For an LTS version, this applies until one year after the next LTS version; the updates after that are released under the OTN license. Versions without LTS are under the NFTC for their entire lifetime.
For the LTS versions from Java 17 on, this means:
| Version | Free (NFTC) | Paid (OTN) |
|---|---|---|
| Java 17 | up to and including version 17.0.12 | from version 17.0.13 (October 2024) |
| Java 21 | up to and including version 21.0.12 | from version 21.0.13 (October 20, 2026) |
| Java 25 | updates until September 2028 | after that |
| Java 29 | updates until September 2030 (planned) | after that |
The license is tied to the individual version, not to a date. An Oracle JDK in version 21.0.12 that you have already downloaded may still be used for free – you just don’t get free security updates for it anymore.
I recommend a distribution where the license question doesn’t arise at all: Eclipse Temurin or Amazon Corretto – you’ll find the reasons in the section Which Distribution? If you want to stay with the Oracle JDK, have your legal department review the license terms. The details are in Oracle’s JDK License FAQ.
Which Java Version Should You Use?
For a new project, I recommend the current LTS version, currently Java 25. It gets free updates at Temurin until at least September 2031.
If your team can upgrade every six months, use the latest version, currently Java 27. That way, you get new features up to two years earlier – in return, you have to switch every six months because the previous version stops getting updates.
For an existing project: plan the switch before the end of support of your distribution at the latest, not before that of the Java version. A project on Temurin 17 gets updates until October 2027, on Corretto 17 until October 2029.
Which Distribution?
I recommend Eclipse Temurin and, if your application runs on AWS, Amazon Corretto. Both are free, raise no license question, and get updates for a long time. I use both in production myself and have had good experiences with both.
- Temurin comes from the vendor-neutral Adoptium project of the Eclipse Foundation – you don’t tie yourself to a single vendor. Google also recommends Temurin in its Java documentation.
- Corretto is built by Amazon itself and comes preinstalled on Amazon Linux. And for every LTS version, Corretto supplies free updates the longest.
Two cases speak for a different distribution:
- Certified JDK: If the vendor of software you use has certified a particular JDK, use that one.
- Commercial support on Azure: You may use the Microsoft Build of OpenJDK anywhere for free, but commercial support is available only for applications on Azure.
Technically, the distributions differ little. Except for Semeru with its own JVM OpenJ9, they all build from the same OpenJDK source code, and all of them pass the TCK (Technology Compatibility Kit), the test suite that checks compatibility with the Java specification.
Spring Boot and the Java Version
If you use Spring Boot, Spring Boot also determines the minimum Java version you need. The lines 3.4 to 4.2 require Java 17; according to its system requirements, Spring Boot 4.1 runs on Java 17 to Java 27.
Spring Boot 2.7 still runs on Java 8 but hasn’t received free updates since June 2023, with a contract until June 2029. If you stay on Java 8 or 11, you also stay on a Spring Boot version without free updates.
Conclusion
The current LTS version is Java 25; the next one is expected in September 2027 with Java 29.
How long your Java version gets updates is decided by the distribution: Temurin 17 gets them until October 2027, Corretto 17 until October 2029. So check the end of support of your distribution, not that of the version – and plan the switch before it.
What changed from version to version is described in the articles from Java 9 to Java 28, summarized compactly in the Java Versions Cheat Sheet. I show how to install several Java versions side by side and switch between them in the article How to Change Java Versions in Windows.
Was this article helpful to you? Then I’d be happy if you took a moment to leave a review on my ProvenExpert profile.




