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
