Java (Oracle) version history and release Schedule.

After Java 9, oracle intends to release new versions of java every 6 months. After the latest version : Java 17, there will be an LTS (Long term support) release every 2 years. So the next LTS release Java 21 will be on September 2023. Java SE 1-5, 6, 7, 8, 11 and 17 are LTS releases. Below table provides all the major java versions, release dates and End of Support Life (The length of time updates are provided).

ReleaseGeneral Availability / Release DateEnd of Support Life (EOSL)
JDK 1.0January 1996
JDK 1.1 February 1997October 2002
Java2 SE 1.2(LTS)December 1998December 2003
Java2 SE 1.3 (LTS)May 2000April 2011
Java2 SE 1.4 (LTS)February 2002March 2013
Java2 SE 5 (LTS)September 2004July 2015
Java SE 6 (LTS)December 2006December 2018
Java SE 7 (LTS)July 2011July 2022
Java SE 8 (LTS)March 2014December 2030
Java SE 9 (non-LTS)September 2017March 2018
Java SE 10 (non-LTS)March 2018September 2018
Java SE 11 (LTS)September 2018September 2026
Java SE 12 (non-LTS)March 2019September 2019
Java SE 13 (non-LTS)September 2019March 2020
Java SE 14 (non-LTS)March 2020September 2020
Java SE 15 (non-LTS)September 2020March 2021
Java SE 16 (non-LTS)March 2021September 2021
Java SE 17 (LTS)September 2021September 2029
Java SE 18 (non-LTS)March 2022September 2022
Java SE 19 (non-LTS)September 2022March 2023
Java SE 20 (non-LTS)March 2023September 2023
Java SE 21 (LTS)September 2023September 2031
Source: oracle.com

There are a lot of modern language features introduced between Java 11 and Java 17. Projects which are still on Java 8 can migrate directly to the Java 17 LTS release instead of moving to Java 11 LTS to benefit from all the latest features of Java 17.

When was Java 5 released ?

Java 5 was released on 2004-Sep-30 with lot of great new features. Starting from Java 5 the major version got dropped. So the next version of Java 1.4 became 5. Some of the new features of Java 5 include:

  • Generics
  • Enhanced for Loop
  • Autoboxing/Unboxing
  • Typesafe Enums
  • Varargs
  • Static import
  • Annotations
  • Concurrency Utilities (java.util.concurrent)
  • Monitoring and Management APIs.

For more details refer Java 5 new features