Java Version and LTS Timeline - Release History, the LTS Model, and Support Across Distributions
First Published:
Last Updated:
The question "when does Java 8 (or 11, or 17) reach end of life?" is asked constantly, yet it does not have a single correct answer. Since Java 11, the runtime has been distributed by many vendors - Oracle, Eclipse Adoptium (Temurin), Amazon Corretto, Red Hat, Microsoft, Azul, and others - and each one publishes its own support-end dates from the same OpenJDK source code. A version that Oracle no longer covers under Premier Support may still receive free security updates from another distribution for years. This article organizes the release history and the LTS model in one place, and then lays the different support windows side by side so that "end of life" is never read as a single date when it is really several.
This article focuses on release dates, the move to a time-based release cadence, LTS designations, and the support timelines published by each major distribution, with every row linked to a primary source. It is not a language-feature history, a distribution-versus-distribution recommendation, or a migration guide; licensing changes are stated as facts with primary links, without evaluation. Java versions 1.0 through 8 are covered at the level of milestones only, while every release from JDK 9 onward is listed individually.
Facts in this article were verified against OpenJDK and Oracle official sources as of 2026-07-24. Because support dates are extended and revised over time, the tables below carry the date on which they were last checked, and the article is intended to be refreshed as the roadmaps change.
Companion articles on hidekazu-konishi.com:
- Python Version Support and EOL Timeline
- Node.js Release and EOL Timeline
- AI Model Deprecation and Lifecycle Calendar
- AWS Lambda Master Index
- AWS End-of-Support and EOL Reference
Background and Method of Creating the Java Version and LTS Timeline
The reason for creating this timeline is that Java's versioning, release cadence, and support model all changed substantially within a few years, and the primary facts are now spread across the OpenJDK project pages, Oracle's support roadmap, and the roadmaps of several independent distributions. It is genuinely difficult to hold in one's head "when did the six-month cadence start?", "which versions are LTS?", and - most importantly - "who provides support for a given version, and until when?". I wanted one page that answers these with a primary source for each fact.The single most important thing to understand before reading the tables is that a Java version does not have one universal end-of-support date. The support you receive depends on which build you run and who provides it. The main support subjects are:
- OpenJDK Updates projects - the upstream, vendor-neutral source. OpenJDK is the reference implementation of Java SE, and the update releases for current lines are produced in projects hosted at openjdk.org (for example, the JDK Updates project for 11u, 17u, 21u, and 25u, and the separate JDK 8 Updates project). Every distribution below repackages this same upstream source.
- Oracle - Oracle offers commercial Premier Support and, after it, Extended Support for LTS releases through a paid Java SE subscription, and it also publishes free Oracle JDK builds under specific license terms (discussed below). Non-LTS releases receive Oracle updates only until the next release ships.
- Other distributions - Eclipse Temurin (Eclipse Adoptium), Amazon Corretto, the Red Hat build of OpenJDK, the Microsoft Build of OpenJDK, Azul Zulu, and others each publish their own no-cost or commercial support windows, which frequently extend well beyond Oracle's Premier Support period for the same version.
- LTS (Long-Term-Support) is a designation applied to selected feature releases that vendors commit to supporting for many years. Oracle's designated LTS releases are Java SE 8, 11, 17, 21, and 25.
- Premier Support and Extended Support are Oracle's commercial support tiers; Extended Support follows Premier Support and is typically available for an additional multi-year period (sometimes with an uplift fee that Oracle may waive for a stated window).
- A feature release is a six-monthly version (for example, JDK 22 or 23) that carries new language and platform features. A non-LTS feature release is superseded for Oracle support purposes as soon as the next release arrives.
- Tracking the release history of Java and organizing the transition of the versioning, cadence, and LTS model.
- Summarizing the current support status of the LTS versions across each major distribution in one comparison table.
This timeline primarily references the following sources.
- OpenJDK JDK Project (release pages)
- Oracle Java SE Support Roadmap
- Eclipse Adoptium (Temurin) Support
- Amazon Corretto FAQs
- Red Hat build of OpenJDK Life Cycle and Support Policy
- Microsoft Build of OpenJDK support
The content posted here is limited to the milestones and support facts considered essential for understanding Java versioning and support.
In other words, please note that the items on this timeline are not all Java updates, but are representative milestones that I have picked out.
Java Version and LTS Historical Timeline (Updates from September 30, 2004)
Here is the chronological timeline of the major milestones in Java's release history, the versioning and cadence changes, and the LTS model, from J2SE 5.0 through the releases of 2026. Java began earlier - JDK 1.0 was released by Sun Microsystems in January 1996, and the platform was rebranded "Java 2" (J2SE) with the establishment of the Java Community Process in the late 1990s - but the timeline below starts where each entry can be tied to a durable primary source and covers the events most relevant to versioning and support. Each row links to the official release page, Oracle roadmap, or license document.* You can sort the table by clicking on the column name.
| Date | Event |
|---|---|
| 2004-09-30 | J2SE 5.0 (Tiger) is released. J2SE 5.0 (internal version 1.5) was a major platform release, and it is the point at which this durable timeline begins. Source: Java SE - J2SE 5.0. |
| 2006-11-13 | Sun Microsystems releases Java as free software under the GPL, creating OpenJDK. Sun open-sourced its Java implementation (initially the HotSpot virtual machine and the javac compiler) under the GNU General Public License version 2, a process completed in 2007. The resulting project, OpenJDK, later became the official reference implementation of Java SE and the shared upstream source for every distribution discussed here. Source: OpenJDK. |
| 2006-12-11 | Java SE 6 (Mustang) is released. Java SE 6 was the last major release under the original Sun stewardship before the acquisition by Oracle, and its code base seeded both JDK 7 and the long-running update projects. Source: JDK 6 Project (OpenJDK). |
| 2010-01-27 | Oracle completes its acquisition of Sun Microsystems. With the acquisition (announced in April 2009 and completed in January 2010), stewardship of Java and the OpenJDK project passed from Sun to Oracle, which has led the platform's releases and support model ever since. Source: Oracle Buys Sun (Oracle). |
| 2011-07-28 | Java SE 7 (Dolphin) is released, the first major release under Oracle. From Java SE 7 onward, OpenJDK served as the official reference implementation of Java SE. Java 7 predates the modern LTS model. Source: JDK 7 Project (OpenJDK). |
| 2014-03-18 | Java SE 8 is released and becomes the first modern LTS baseline. Java SE 8 introduced lambda expressions and the Stream API, and it went on to become one of the most widely deployed Java versions; it is one of Oracle's designated LTS releases and remains available from most distributions for years to come. Source: JDK 8 Project (OpenJDK). |
| 2017-09-06 | "Moving Java Forward Faster" proposes a time-based, six-month release cadence. Mark Reinhold proposed replacing the ad hoc multi-year release model with a strict schedule: a feature release every six months, quarterly update releases, and long-term support on selected releases. Source: Moving Java Forward Faster. |
| 2017-09-21 | JDK 9 is released, the last version under the old multi-year model. JDK 9 introduced the module system (Project Jigsaw). It shipped roughly three years after JDK 8 and just before the new cadence took effect. Source: JDK 9 Project (OpenJDK). |
| 2018-03-20 | JDK 10 is released - the first version under the six-month cadence. JDK 10 was delivered on the new time-based schedule, and JEP 322 (Time-Based Release Versioning) redefined the version string to support a feature release every six months. Sources: JDK 10 Project, JEP 322. |
| 2018-09-25 | JDK 11 is released (LTS), alongside a new licensing model for the Oracle JDK. Java 11 is an LTS release. Oracle had already been publishing free OpenJDK builds under the GPLv2 with Classpath Exception since JDK 9 (September 2017); starting with Java 11, the Oracle JDK itself moved to the Oracle Technology Network (OTN) License Agreement, which requires a commercial subscription for general production use. Sources: JDK 11 Project, Oracle Technology Network License Agreement for Oracle Java SE. |
| 2019-03-19 | JDK 12 is released. A non-LTS feature release; under Oracle's model, non-LTS releases receive Oracle updates only until the next release. Source: JDK 12 Project. |
| 2019-04 | Oracle completes the end-of-permissive-licensing process for Oracle JDK 8. As of the April 2019 update, Oracle's own Oracle JDK 8 updates for commercial use moved behind the Oracle subscription and OTN license; free OpenJDK-based builds of Java 8 remained available from Oracle and from other distributions. Source: Oracle Java SE Support Roadmap. |
| 2019-09-17 | JDK 13 is released. A non-LTS feature release. Source: JDK 13 Project. |
| 2020-03-17 | JDK 14 is released. A non-LTS feature release. Source: JDK 14 Project. |
| 2020-09-15 | JDK 15 is released. A non-LTS feature release. Source: JDK 15 Project. |
| 2021-03-16 | JDK 16 is released. A non-LTS feature release, the last before the Java 17 LTS. Source: JDK 16 Project. |
| 2021-09-14 | JDK 17 is released (LTS), introduced under the No-Fee Terms and Conditions (NFTC) license. Java 17 is an LTS release. With it, Oracle introduced the Oracle No-Fee Terms and Conditions (NFTC) license, permitting free use of the Oracle JDK - including commercial and production use - for a defined period. Sources: JDK 17 Project, Oracle No-Fee Terms and Conditions (NFTC) License. |
| 2021-09-14 | Oracle moves the JDK LTS cadence from every three years to every two years. After designating Java 8, 11, and 17 as LTS at three-year intervals, Oracle shifted future LTS releases to a two-year cadence, making JDK 21 (2023) the next LTS after 17. Source: Oracle Java SE Support Roadmap. |
| 2022-03-22 | JDK 18 is released. A non-LTS feature release. Source: JDK 18 Project. |
| 2022-09-20 | JDK 19 is released. A non-LTS feature release. Source: JDK 19 Project. |
| 2023-01-23 | Oracle introduces the Java SE Universal Subscription with per-employee pricing. The Java SE Universal Subscription replaced the legacy Java SE Subscription and Desktop Subscription and is sold on an employee-based metric. This is a change to the commercial subscription only; it does not affect the free OpenJDK builds. Source: Java SE Universal Subscription FAQ. |
| 2023-03-21 | JDK 20 is released. A non-LTS feature release, the last before the Java 21 LTS. Source: JDK 20 Project. |
| 2023-09-19 | JDK 21 is released (LTS). Java 21 is an LTS release and the first under the two-year LTS cadence; it brought virtual threads (Project Loom) to general availability. Source: JDK 21 Project. |
| 2024-03-19 | JDK 22 is released. A non-LTS feature release. Source: JDK 22 Project. |
| 2024-09-17 | JDK 23 is released. A non-LTS feature release. Source: JDK 23 Project. |
| 2024-10-15 | Oracle JDK 17 updates transition to the OTN license after three years of NFTC updates. Public updates of Oracle JDK 17 were provided under the permissive NFTC license through September 2024; updates released from October 2024 onward are offered under the Oracle Technology Network (OTN) license, the same terms as Oracle JDK 8 and 11. Users wanting permissively licensed Oracle builds are directed to a newer LTS. Source: Oracle Java SE Support Roadmap. |
| 2025-03-18 | JDK 24 is released. A non-LTS feature release, the last before the Java 25 LTS. Source: JDK 24 Project. |
| 2025-09-16 | JDK 25 is released (LTS). Java 25 is the current LTS release. Under the two-year cadence it follows Java 21, and Oracle's roadmap lists its Premier Support running into 2030. Source: JDK 25 Project. |
| 2026-03-17 | JDK 26 is released. Java 26 is the current non-LTS feature release, continuing the six-month cadence after Java 25. Source: JDK 26 Project. |
| 2026-09-15 (scheduled) | JDK 27 is scheduled as the next feature release. Following the six-month cadence, JDK 27 is a non-LTS release whose general availability the JDK 27 Project schedules for 2026-09-15; it entered Rampdown Phase Two on 2026-07-16. This is a scheduled date and is subject to change. Source: JDK 27 Project. |
| 2027-09 (planned) | JDK 29 is planned as the next LTS release. Oracle states that it intends to make future LTS releases every two years, meaning the next planned LTS after Java 25 is Java 29 in September 2027. LTS designations and dates are stated by Oracle to be subject to change. Source: Oracle Java SE Support Roadmap. |
There may be slight variations in these dates due to differences between an original announcement, general availability, and a roadmap label. The dates above prioritize the official release date for each version. Future releases are marked as scheduled or planned.
Current Overview of Java Versions, LTS, and Support
Having followed the chronology, this section summarizes the current picture: how the six-month cadence and the LTS model work together, which versions are LTS, and - the central reference of this article - how the support-end dates for each LTS version differ by distribution.The Six-Month Cadence and the LTS Model
Since JDK 10 (March 2018), Java has shipped a feature release every six months, in March and September. Most of these releases are non-LTS: they are fully supported by Oracle only until the next release six months later, so teams that want to stay current on non-LTS versions must upgrade every six months. Selected releases are designated LTS, and these are the versions that most production systems standardize on because vendors commit to supporting them for years.The LTS interval itself has changed. Java 8 (2014), 11 (2018), and 17 (2021) were designated LTS at three-year intervals. In September 2021, Oracle moved to a two-year LTS cadence, so Java 21 (2023) and Java 25 (2025) are LTS, and Oracle states that the next planned LTS is Java 29 in September 2027. The current LTS roster is therefore Java 8, 11, 17, 21, and 25. (Java 7 predates this model and is no longer listed on Oracle's current roadmap.)
There Is No Single End-of-Life Date for a Java Version
This is the point most worth internalizing. Because every distribution builds from the same OpenJDK source but publishes its own support window, the "end of life" of, say, Java 11 depends entirely on which build you run. Oracle's commercial Premier Support for Java 11 ended in September 2023 (with paid Extended Support available into 2032), yet free builds of Java 11 from Amazon Corretto are planned to receive updates into 2032, and from Eclipse Temurin for at least several more years. Conversely, a distribution's "free" support can end earlier than Oracle's paid Extended Support in some cases. The table below places the published windows side by side so that a single date is never mistaken for the whole answer.
LTS Support End Dates by Distribution
The table lists, for each LTS version, its release date and the support-end dates published by Oracle and by four major OpenJDK distributions. All values are reproduced at the precision each provider publishes (Oracle and most distributions use month-and-year). Dates were verified against the sources listed below the table as of 2026-07-24.* You can sort the table by clicking on the column name.
| Version (LTS) | GA | Oracle Premier | Oracle Extended | Eclipse Temurin | Amazon Corretto | Red Hat build | Microsoft build |
|---|---|---|---|---|---|---|---|
| Java 8 | 2014-03 | 2022-03 | 2030-12 | at least 2030-12 | 2030-12 | 2026-11 (full); 2030-12 (ELS) | no own build *5 |
| Java 11 | 2018-09 | 2023-09 | 2032-01 | at least 2027-10 | 2032-01 | 2024-10 (full ended); 2027-10 (ELS) | 2027-09 |
| Java 17 | 2021-09 | 2026-09 | 2029-09 | at least 2027-10 | 2029-10 | 2027-12 | 2027-09 |
| Java 21 | 2023-09 | 2028-09 | 2031-09 | at least 2029-12 | 2030-10 | 2029-12 | 2028-09 |
| Java 25 | 2025-09 | 2030-09 | 2033-09 | at least 2031-09 | 2032-10 | 2030-12 | 2030-09 |
Notes and sources:
- *1 Oracle Premier / Extended are commercial support tiers available through an Oracle Java SE subscription; the dates are as published on the Oracle Java SE Support Roadmap and are marked by Oracle as illustrative and subject to change ("or later"). Non-LTS releases are supported by Oracle only until the next release.
- *2 Eclipse Temurin values are the "at least" floor commitments published on the Eclipse Adoptium support page; Adoptium continues building LTS binaries while the corresponding upstream source is actively maintained, so these are minimums rather than hard cutoffs.
- *3 Amazon Corretto end-of-support dates are from the Amazon Corretto FAQs support calendar.
- *4 Red Hat build of OpenJDK shows the end of full support and, where applicable, the end of the optional paid Extended Life Cycle Support (ELS); for Java 11, Red Hat's full support has already ended and only paid ELS remains. Source: Red Hat build of OpenJDK Life Cycle and Support Policy.
- *5 Microsoft Build of OpenJDK dates are the "earliest end-of-support" targets on the Microsoft support page; Microsoft does not produce its own Java 8 build and directs Java 8 users to Eclipse Temurin.
Oracle JDK Licensing in Brief
Because licensing is a frequent source of confusion, it is worth stating the facts plainly, with primary links and without recommendation. The Oracle JDK and OpenJDK share the same source code; they differ in licensing and support:- Free OpenJDK builds (from Oracle and from every distribution above) are provided under the GPL version 2 with the Classpath Exception.
- The Oracle JDK for Java 8 and Java 11 is provided under the Oracle Technology Network (OTN) License Agreement, which permits personal and development use at no cost but requires a subscription for general production use.
- Since Java 17, Oracle has also offered the Oracle JDK under the No-Fee Terms and Conditions (NFTC) license, which permits free use - including commercial and production use - for a defined period (through one year after the following LTS release), after which updates for that version revert to the OTN license.
- Commercial support is sold as the Java SE Universal Subscription, priced on a per-employee basis since January 2023.
Java Support on AWS
On AWS, the most common way to run a specific Java version is through Amazon Corretto, Amazon's no-cost, production-ready OpenJDK distribution, whose support calendar is included in the table above. AWS Lambda also provides managed Java runtimes (for example, Java 8, 11, 17, 21, and 25), and Lambda's own runtime deprecation schedule is a separate, AWS-managed timeline layered on top of the language's support windows. For how Lambda manages and retires its runtimes, and for the SnapStart feature that improves Java cold-start times, see my AWS Lambda Master Index and How AWS Lambda Execution Environments Work. The broader idea of tracking end-of-support across a portfolio is covered in my AI Model Deprecation and Lifecycle Calendar.Frequently Asked Questions about Java Version and LTS History
Which Java versions are LTS?
Oracle's designated Long-Term-Support (LTS) releases are Java SE 8, 11, 17, 21, and 25. Oracle states that it intends to designate a new LTS every two years, so the next planned LTS after Java 25 is Java 29, expected in September 2027. Java 7 predates the modern LTS model and is no longer listed on Oracle's current support roadmap.How often is a new Java LTS released?
Since Java 17 (2021), Oracle designates an LTS release every two years. Before that, LTS releases came every three years (Java 8 in 2014, Java 11 in 2018, and Java 17 in 2021). Between LTS releases, a non-LTS feature release ships every six months.When does Java 8 (or 11, or 17) support end?
There is no single date, because support depends on which distribution you run. For Java 8, for example, Oracle's commercial Premier Support ended in March 2022 (with paid Extended Support into December 2030), while free builds from Amazon Corretto and Eclipse Temurin are planned to receive updates into December 2030. For Java 11, Oracle Premier Support ended in September 2023, while Amazon Corretto is planned to support it into January 2032. The full per-distribution matrix is in the "LTS Support End Dates by Distribution" table above; always check the specific provider whose build you run.What changed with the six-month release cadence?
Beginning with JDK 10 in March 2018, Java moved to a strict time-based schedule with a feature release every six months (in March and September), replacing the previous multi-year major-release model. The change was proposed in "Moving Java Forward Faster" (September 2017) and implemented through JEP 322 (Time-Based Release Versioning). Non-LTS feature releases receive Oracle updates only until the next release, while LTS releases are supported for years.Is there a single end-of-life date for a Java version?
No. A Java version has as many support-end dates as there are distributions that build it, because they all package the same OpenJDK source but publish independent roadmaps. Oracle publishes Premier and Extended Support dates for its commercial subscription; Eclipse Temurin, Amazon Corretto, the Red Hat build of OpenJDK, and the Microsoft Build of OpenJDK each publish their own windows, which are often longer than Oracle's Premier Support period. The honest answer to "when does this Java version reach end of life?" is always "under which distribution?".What is the difference between the Oracle JDK and OpenJDK builds?
They are built from the same source code; the difference is licensing and support, not the code. OpenJDK builds (from Oracle and from every other distribution) are provided under the GPLv2 with Classpath Exception. The Oracle JDK is provided under the Oracle Technology Network (OTN) license for Java 8 and 11, and additionally under the free No-Fee Terms and Conditions (NFTC) license from Java 17 for a defined period, after which it reverts to OTN. Oracle sells commercial support as the per-employee Java SE Universal Subscription.Summary
In this article, I created a historical timeline of Java's release history and the evolution of its versioning, cadence, and LTS model, and then summarized the current support status of the LTS versions across the major distributions.The timeline shows three phases: an early phase in which Java grew under Sun (from JDK 1.0 in 1996 to Java SE 6) and was open-sourced as OpenJDK; a transition phase in which Oracle took over stewardship, Java 8 became the first modern LTS, and the platform moved to a time-based six-month release cadence with JDK 10; and a maturity phase in which the LTS interval shortened to two years (Java 17, 21, 25), the Oracle JDK licensing model changed several times (OTN, then NFTC, then per-employee subscription pricing), and a rich ecosystem of distributions each set its own support window.
The single most useful takeaway is that a Java version does not have one end-of-life date. Oracle, Eclipse Temurin, Amazon Corretto, the Red Hat build of OpenJDK, and the Microsoft Build of OpenJDK all build from the same OpenJDK source and publish their own support-end dates, and those dates differ - often by years. When planning an upgrade, the question to answer is not simply "is this version still supported?" but "is it still supported by the distribution we actually run?". By organizing the release history and the per-distribution support windows in one place, each with a primary source, I hope this article serves as a reference that developers, architects, and AI search agents can consult in a single fetch.
This timeline will be updated as Java versions, the LTS roadmap, and distribution support windows continue to evolve.
In addition, there are related history-and-timeline articles on this site, so please have a look if you are interested.
AWS History and Timeline - Almost All AWS Services List, Announcements, General Availability(GA)
AI Model Deprecation and Lifecycle Calendar
AWS Lambda Master Index
References:
OpenJDK JDK Project (release pages)
Oracle Java SE Support Roadmap
JEP 322: Time-Based Release Versioning
Eclipse Adoptium (Temurin) Support
Amazon Corretto FAQs
Red Hat build of OpenJDK Life Cycle and Support Policy
Microsoft Build of OpenJDK support
References:
Tech Blog with curated related content
Written by Hidekazu Konishi