JDK distributions

tldr: Use Eclipse Temurin

List of JDK distributions

There are a variety of different and alternative JDK distributions available:

Oracle JDK (WARNING)

  • DO NOT USE (unless you pay for it).
  • License:
    • Licence until 10: Oracle Binary Code Licence Agreement -> ok to use commercially
    • Key part of the licence (11-16):

      You may not: use the Programs for any data processing or any commercial, production, or internal business purposes other than developing, testing, prototyping, and demonstrating your Application;

    • Licence (17+): Allows internal business operations, which is a very vague phrase. Avoid.

OpenJDK builds by Oracle

  • Do not use.
  • Builds are only updated for 6 months after release, after which or updates or even security patches are made available (at which point the next Java version is usually made available) - BUT THIS ALSO APPLIES FOR LTS VERSIONS.

Eclipse Temurin / Adoptium OpenJDK / AdoptOpenJDK

  • (renamed several times, all refer to the safe Working Group (consisting of Red Hat, Microsoft, IBM, Azul, iJUG, ...))
  • AdoptOpenJDK refers to the oldest of them, use the newer Eclipse Temurin builds
  • High quality vendor neutral TCK-tested permissively licenced LTS releases
  • Recommended to use

Azul distributions

  • Azul is a company built around Java distributions. They have two versions:
    • Azul Zulu (the free variant): Good alternative to Eclipse Temurin (TCK-tested permissively licenced). Also, backported macOS/AArch64 support to use with Java versions older than 17 (when it was released for all JDK distros).
    • Azul Zing (requires licence, like Oracle JDK): Good alternative to Eclipse Temurin (TCK-tested permissively licenced)

Liberica JDK (BellSoft)

  • Company similar zo Azul, also good alternative to Eclipse Temurin
  • Also, backported macOS/AArch64 support to use with Java versions older than 17 (when it was released for all JDK distros).

IBM Semeru

  • Is not based on HotSpot but J9
  • Our systems are not optimized for J9. Generally (if no special use case requires it): do not use.

Amazon Corretto

  • Released by AWS, integrates their crypto provider and optimized for running in AWS on Amazon Linux 2.
  • If not running in AWS on Amazon Linux 2: do not use.

Microsoft Build of OpenJDK

  • (Possibly optimized for Azure?)
  • If not running in Azure: do not use.

Alibaba Dragonwell

  • by Aliyun
  • Do not use.

SapMachine

  • by SAP
  • Do not use (we are not running on SAP servers).

Red Hat OpenJDK

  • Optimized for RHEL (Red Hat Enterprise Linux)
  • If not running on RHEL: do not use.

ojdkbuild

  • Do not use. (discontinued)

GraalVM

  • AOT compiles the Java application.
  • Our systems are not optimized for GraalVM, and lots of our stuff would probably not work there. Generally (if no special use case requires it): do not use.

Do I need a JRE or JDK

  • JRE: Java Runtime Environment — can only run Java applications
  • JDK: Java Development Kit — can run Java applications, but also build & package them