The Java language has undergone several changes since JDK 1.0 as well as numerous additions of classes and packages to the standard library. Since J2SE 1.4, the evolution of the Java language has been governed by the Java Community Process (JCP), which uses Java Specification Requests (JSRs) to propose and specify additions and changes to the Java platform. The language is specified by the Java Language Specification (JLS); changes to the JLS are managed under JSR 901.
In addition to the language changes, other changes have been made to the Java Class Library over the years, which has grown from a few hundred classes in JDK 1.0 to over three thousand in J2SE 5. Entire new APIs, such as Swing and Java2D, have been introduced, and many of the original JDK 1.0 classes and methods have been deprecated. Some programs allow conversion of Java programs from one version of the Java platform to an older one (for example Java 5.0 backported to 1.4) (see Java backporting tools).
Regarding to Oracle Java distribution, version 11 is the currently supported long-term support (LTS) version (and Java 8 LTS to some degree). ("Oracle Customers will receive Oracle Premier Support"); Oracle released for the "legacy" Java 8 LTS the last free software "public update" in January 2019 for commercial use, while Oracle continues to release no-cost public updates for Java 8 for e.g. development[1] and personal use indefinitely.[2] Java 10 is the previously supported rapid release version. Java 10 support ended on the same date that support for Java 11 began, in September 2018. Java 7 is no longer publicly supported, and Java 9 has stopped receiving updates since Java 9 was a short-term rapid release version that has been superseded by Java 10 and now Java 11. For Java 11, long-term support will not be provided by Oracle for the public; instead, the broader OpenJDK community, as AdoptOpenJDK or others, is expected to perform the work.[3]
Java 15 General Availability occurred on September 15, 2020, with Java 16 now in Rampdown Phase Two (Initial Release Candidate expected February 4, 2021),[4] and with Java 17 now also in development.
Version | Release date |
End of Free Public Updates[1][5][6][7] |
Extended Support Until |
---|---|---|---|
JDK Beta | 1995 | ? | ? |
JDK 1.0 | January 1996 | ? | ? |
JDK 1.1 | February 1997 | ? | ? |
J2SE 1.2 | December 1998 | ? | ? |
J2SE 1.3 | May 2000 | ? | ? |
J2SE 1.4 | February 2002 | October 2008 | February 2013 |
J2SE 5.0 | September 2004 | November 2009 | April 2015 |
Java SE 6 | December 2006 | April 2013 | December 2018 |
Java SE 7 | July 2011 | April 2015 | July 2022 |
Java SE 8 (LTS) | March 2014 | January 2019 for Oracle (commercial) December 2030 for Oracle (non-commercial) December 2030 for Zulu At least May 2026 for AdoptOpenJDK At least May 2026 for Amazon Corretto |
December 2030 |
Java SE 9 | September 2017 | March 2018 for OpenJDK | N/A |
Java SE 10 | March 2018 | September 2018 for OpenJDK | N/A |
Java SE 11 (LTS) | September 2018 | September 2027 for Zulu At least October 2024 for AdoptOpenJDK At least September 2027 for Amazon Corretto |
September 2026 |
Java SE 12 | March 2019 | September 2019 for OpenJDK | N/A |
Java SE 13 | September 2019 | March 2020 for OpenJDK | N/A |
Java SE 14 | March 2020 | September 2020 for OpenJDK | N/A |
Java SE 15 | September 2020 | March 2021 for OpenJDK | N/A |
Java SE 16 | March 2021 | September 2021 for OpenJDK | N/A |
Java SE 17 (LTS) | September 2021 | September 2030 for Zulu | TBA |
Legend: Old version Older version, still maintained Latest version Future release |
Java8
was invoked but never defined (see the help page).
JDK 16
was invoked but never defined (see the help page).