Visual JDK notes

Russell Bateman
February 2019
last update:



The information by Oracle over the last couple of years has often been misread, misinterpreted and misunderstood with the added complication that many do not understand their options going forward. The Java Champions issued, collectively, in September 2018 Java Is Still Free which contains what's probably the best perspective on options ranging from Java 8 onward.

(This was updated in March 2019 here.)

Avoiding very vendor-specific confusions from IBM, Red Hat, Azul, Zulu, etc., here are the options in a visual, hopefully recognizable display that will please most.

Oracle's commercial JDK/JRE

With Oracle, from now on, you pay for both the JDK (for developers) as well as for clients that consume, using a JRE, applications from those developers. The names are

  • Java Platform, Standard Edition (Java SE)
  • Java Platform, Enterprise Edition (Java EE)
  • Java Runtime Environment (JRE)
  • Java Developers' Kit (JDK)
  • jdk-11.0.2_linux-x64_bin.tar.gz
 

It's unclear just how long released versions will be available. The oldest available from Oracle's page at present is Java 8. Getting older ones requires visiting a Java-archive page where you can get releases all the way back to Java SE 1.1, a real trip down memory lane, and are not available for all platforms. Sometimes, it's just older Windows and Solaris.

There's no separate JRE anymore with Oracle. Since you're paying for it, they expect you to ship the runtime inside your application from now on. This began in Java 9.

Command-line tool, jlink, introduced in JDK 9, makes it easier for developers to package and deploy dedicated (read: stand-alone) runtimes rather than having to rely upon a preinstalled system JRE.

Such a runtime image acts exactly as a JRE, but contains only the modules you pick and their dependencies (per the requires directive). This can improve start-up time and other performance aspects of your running application.

OpenJDK (jdk.java.net)

This is Oracle too, but it's "$free" as well as free to use. The names are

  • Java Developers' Kit (JDK)
  • openjdk-11.0.2_linux-x64_bin.tar.gz
  • http://jdk.java.net/archive/, a source for OpenJDK downloads of various versions (caveats apply with regard to discontinued security updates).
 

Caveat

However, while this is all $free and free, it goes on the accelerated, six-month cycle which means you must move on when Oracle does or stop at the last update ever made to the version you're using with the possibility that downloads of it may one day disappear altogether.

It's unclear just how long released versions will be available. The oldest available from OpenJDK at present is Java 6.

Just as with Oracle, there's no longer a separate JRE. You're expected to ship the runtime inside your application from now on.

Adopt OpenJDK (adoptopenjdk.net)

This is $free and free to use.

  • open source
  • Open Java Developers' Kit (OpenJDK)
  • OpenJDK-11U-jdk_x64_linux_hotspot_11.0.2_9.tar.gz

It's unclear just how long released versions will be available. The oldest available from Adopt OpenJDK at present is Java 8.

Just as with Oracle, there's no longer a separate JRE. You're expected to ship the runtime inside your application from now on.

Other JDKs

There are many others; here's a table of all of them.

Distribution Version* Public updates Commercial support
AdoptOpenJDK 8, 12 until at least Sep 2023 IBM, jClarity
Amazon Corretto 8, 12 until at least June 2023 ?
Azul Zulu 8, 12 ? Azul
BellSoft Liberica 8, 12 until at least 2023 BellSoft
Oracle OpenJDK 11, 12 until Mar 2019 Oracle, via Oracle JDK
SapMachine 11, 12 ? ?

* as of 1 February 2020.

Version Release End of support
JDK Beta 1995 N/A
JDK 1.0 January 1996 N/A
JDK 1.1 February 1997 N/A
J2SE 1.2 December 1998 N/A
J2SE 1.3 May 2000 N/A
J2SE 1.4 February 2002 February 2013
J2SE 5.0 September 2004 April 2015
Java SE 6 December 2006 December 2018
Java SE 7 July 2011 July 2022
Java SE 8 (LTS) March 2014 December 2030
Java SE 9 September 2017 N/A
Java SE 10 March 2018 N/A
Java SE 11 (LTS) September 2018 September 2026
Java SE 12 March 2019 N/A
Java SE 13 September 2019 N/A
Java SE 14 March 2020 N/A
Java SE 15 September 2020 N/A
Java SE 16 March 2021 N/A
Java SE 17 (LTS) September 2021 September 2029
Java SE 18 March 2022 N/A
Java SE 19 September 2022 N/A
Java SE 20 March 2023 N/A
Java SE 21 (LTS) September 2023 September 2031
Legend: Old version         Still maintained
                 Current version Next release
                 Future release

Class bytecode major version numbers
mapped to Java versions

45 Java 1.1
46 Java 1.2
47 Java 1.3
48 Java 1.4
49 Java 5
50 Java 6
51 Java 7
52 Java 8
53 Java 9
54 Java 10
55 Java 11
56 Java 12
57 Java 13