Featured image of post Overview of available JDKs

Overview of available JDKs

There are different kinds of JDKs, each with its own pros and cons. We will walk you through a couple of known JDKs, so you know exactly which one to download under which circumstances.

JDK stands for Java Standard Edition Development Kit and is used for programming Java. It is an implementation of the Java platform specification, containing among other things a compiler and class libraries.
With the JDK, you also get the Java Runtime Environment (JRE), used for executing Java programs, as well as a JVM, the Java Virtual Machine, in which Java code runs.

OpenJDK

One of the more popular JDKs is of course OpenJDK. OpenJDK is built by Oracle itself, in binary format for Linux, macOS and Windows. It's better to not use the OpenJDK since it is only getting updates for 6 months from Oracle. That is even the case for the LTS versions, which would need support for a couple of years at least. Unfortunately, the OpenJDK is for that reason not very useful.

JDK

When we are talking about the JDK, we often mean the Oracle JDK. This is the "true" JDK, closed-source and again distributed by Oracle itself. The Oracle JDK is a commercial product. Since version 11 of the JDK you are no longer allowed to use it for free in a production environment and since January 2019 this restriction also applies to Java 8. That restriction has led to a number of alternative JDKs being created. You can use the Oracle JDK for free when developing and testing.

Oracle has partly come back from the restriction with Java 17, where the company now allows use for free in production environments, as long as you do not sell a product that includes the Oracle JDK (note that a separate JRE doesn't exist anymore).

Adoptium Temurin JDK

Earlier known as the AdoptOpenJDK, now known as the Adoptium Temurin JDK. This is the JDK from the Eclipse Foundation being built together with Microsoft, IBM, Red Hat and other companies. This JDK, that is open source and based on the OpenJDK, provides handy installers, so you can start using it quickly, easily update your PATH and set the JAVA_HOME variable. You get updates for this JDK as long as updates are being made available upstream. Adoptium will then include these patches into their own JDK.

AdoptOpenJDK

AdoptOpenJDK is the predecessor of Adoptium Temurin, so you can better not use AdoptOpenJDK anymore since the builds are no longer being updated. The website for this project is still up for archiving purposes, but you're better off switching to Adoptium.

Amazon Corretto

Amazon builds its own JDK and uses it on AWS. It is called Corretto, and among other things, it has its own crypto provider built-in that works better on AWS. We recommend using Corretto if you are building apps on AWS using Amazon Linux 2.

GraalVM

GraalVM is a JDK, but has a different goal than the other JDKs we've discussed so far. This JDK is from Oracle, open-source, and contains a compiler and polyglot virtual machine supporting JavaScript, Python, Ruby, WASM and others. An important feature of GraalVM is that it can build native binaries for Java code. At the moment of writing, GraalVM is still in the development phase and as such not stable, but it can be interesting to check it out, especially in combination with Spring Native or Quarkus.