Summary of information about OpenJDK and JDK Distributions #minjava

# Introduction
*The original contents is written in Japanese ["OpenJDKと各種JDKディストリビューションの情報源まとめ #minjava"](https://qiita.com/yamadamn/items/2dd26a014791b9557199). If the translation is strange, please send edit requests to this article. Linked contents may be in Japanese.*

----

This article is part of the Mar 13th, 2020 publication ["Everyone's Java" ('Minna-no-Java/a.k.a minjava' in Japanese)](https://gihyo.jp/book/2020/978-4-297-11199-1) tie-up campaign. :grin:

https://x.com/gihyo_hansoku/status/1230682834408312833

[Here's a quick blog post](https://yamadamn.hatenablog.com/entry/2020minjava-jdk), and at the end of Section 2-4 "Most Recent JDK Distributions", in Chapter 2 which I am in charge of, I write some sources to keep track of.

I think you can follow the link in the case of the electronic version, but it will be difficult for those who purchased the paper version of the book, and the link may change in the future, so I will summarize it as this article.
In addition, I'll add some links to the JDK you should keep an eye on in Section 2-4, as well as some references and additional information.
The EOL for each distribution in section 2-5 is summarized in @YujiSoftware's article "[Summary of Java Release Dates and EOL](https://qiita.com/YujiSoftware/items/2f912af3c857e827ff95)", although it is best to check the latest information from the Lifecycle link.

# The basic sources for insight into the OpenJDK Project
|Type and name|URL|Usage and Remarks|
|:--|:--|:--|
|Site Top|https://openjdk.org/|The structure is a bit complex because this site is for OpenJDK developers.|
|JDK Enhancement Proposal (JEP)|https://openjdk.org/jeps/0|You can see which features are included in each JDK version. Introduced in 2011, it is leading [JSR](https://jcp.org/en/jsr/overview) by [JCP](https://jcp.org/).|
|JDK Project|https://openjdk.org/projects/jdk/|JDK release schedule and the included JEP|
|OCTLA Signatories List|https://openjdk.org/groups/conformance/JckAccess/jck-access.html|List of signers with access to a technology compatibility kit (TCK/JCK) that certifies formal implementation of Java|
|OpenJDK Vulnerability Advisories|https://openjdk.org/groups/vulnerability/advisories/|Vulnerability information shared and published by [OpenJDK Vulnerability Group](https://openjdk.org/groups/vulnerability/)|
|SNS|[@OpenJDK](https://x.com/OpenJDK), [Mastodon](https://mastodon.social/@openjdk)|   |
|Mailing Lists (ML)|https://mail.openjdk.org/|You can browse, subscribe to, and post topics of interest.|
|JDK Bug System (JBS)|https://bugs.openjdk.org/|Issue Tracking by JIRA (Not only Bug but also enhancements, compatibility checks, etc.)|
|Source Code Control|https://github.com/openjdk|Formerly [managed by Mercurial](https://hg.openjdk.org/), migrated to GitHub with Project Skara|

# Major multi-platform JDKs
The information presented here is based on publicly available, and if commercial support is available, you may find more information on the dedicated site.
Basically, they are listed in the order of first official release, but Oracle JDK and Oracle OpenJDK are listed continuously because of their close relationship.

## Oracle JDK (Oracle Java SE)
|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://docs.oracle.com/en/java/javase/index.html (Required not only for Oracle JDK but also for other JDKs)|
|   |Release notes|https://www.oracle.com/java/technologies/javase/jdk-relnotes-index.html|
|   |Vulnerability-related|https://www.oracle.com/security-alerts/|
|   |Lifecycle|https://www.oracle.com/java/technologies/java-se-support-roadmap.html|
|   |Certified platforms|https://www.oracle.com/java/technologies/javase-subscription/documentation.html#sysconfig|
|Trend Understanding|SNS|[@Java](https://x.com/Java) (Various sources of Java, not just Oracle JDK)|
|   |Blog|https://blogs.oracle.com/java/|
|Download|For personal and development|https://www.oracle.com/java/technologies/downloads/ \*Authentication required except for the latest version. (JRE for [java.com](https://java.com/) currently does not require authentication.)|
|   |For commercial customers|https://support.oracle.com/epmos/faces/DocContentDisplay?id=1439822.1|
|License|Oracle Binary Code License (BCL for Java SE)|https://www.oracle.com/downloads/licenses/binary-code-license.html \*~10, ~8u201/202|
|   |Oracle Technology Network License Agreement (OTNLA) for Oracle Java SE|https://www.oracle.com/downloads/licenses/javase-license1.html \*11~, 8u211/212~, (17 or later)*.0.13~ : 1 year after the next LTS|
|   |Oracle No-Fee Terms and Conditions (NFTC)|https://www.oracle.com/downloads/licenses/no-fee-license.html \*(JDK17 or later)~*.0.12 : up to 1 year after the next LTS|

- Originally, [Java SE Embedded has been free development, and the deployment required royalty](https://www.oracle.com/java/technologies/javase-embedded/embedded-faq.html), so it can be said that the same thing happened since JDK 11
- Since JDK 17, the license has been revised and is now free under certain conditions.  For more details, please refer to the [Oracle Java SE Licensing FAQ](https://www.oracle.com/java/technologies/javase/jdk-faqs.html)
  - Since the licensing terms for Oracle JDK can be quite confusing, please also refer to @hoka-shino's article, "[\[Free and Paid Java Licenses\] Oracle JDK License and Support Explanation](https://qiita.com/hoka-shino/items/aafb0aba6840136b23e1)"

## Oracle OpenJDK
|General Information|Description|
|:--|:--|
|Development and Operation|Same as Oracle JDK, but with a half-year lifecycle only (Until the next feature release)|
|Trend Understanding|Same as Oracle JDK, but with links from the download page|
|Download|https://jdk.java.net/ \*JDK9~. No authentication required|
|License|GPLv2 + Classpath Exception (GNU General Public License, version 2, with the Classpath Exception)|

- The license is the same as the OpenJDK source code. : https://openjdk.org/legal/gplv2+ce.html
- Reference material: ["Let's talk anew about Oracle-supplied JDKs"](https://www.slideshare.net/oracle4engineer/oracle-jdk-20190827-oraclejdk)

## Red Hat build of OpenJDK
|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://docs.redhat.com/documentation/en-us/red_hat_build_of_openjdk/|
|   |Release notes|(See above)|
|   |Lifecycle|https://access.redhat.com/articles/1299013|
|   |Certified platforms|(See above)|
|Trend Understanding|SNS|[@RedHatJava](https://x.com/RedHatJava), [@rhdevelopers](https://x.com/rhdevelopers)|
|   |Blog|https://developers.redhat.com/topics/java/all|
|Download|For Developers|https://developers.redhat.com/products/openjdk/download \*Authentication required|
|   |For commercial customers|https://access.redhat.com/jbossnetwork/restricted/listSoftware.html?product=core.service.openjdk&downloadType=distributions \*Subscription, such as the JBoss product, is required. There is also a yum repository for RHEL.|
|License|GPLv2 + Classpath Exception|   |

- Reference material: ["Red Hat's OpenJDK"](https://speakerdeck.com/agetsuma/red-hatfalseopenjdk)

## Azul Zulu
|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://docs.azul.com/core/|
|   |Release notes|https://docs.azul.com/core/release-notes.html|
|   |Lifecycle|https://www.azul.com/products/azul-support-roadmap/|
|   |Certified platforms|https://docs.azul.com/core/supported-platforms.html|
|Trend Understanding|SNS|[@AzulSystems](https://x.com/AzulSystems)|
|   |Blog|https://www.azul.com/blog/|
|   |GitHub|https://github.com/zulu-openjdk *Currently mostly for Dockerfile|
|Download|   |https://www.azul.com/downloads/ \*No authentication required|
|License|GPLv2 + Classpath Exception|   |

## BellSoft Liberica JDK
|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://docs.bell-sw.com/liberica-jdk/|
|   |Release notes|https://docs.bell-sw.com/liberica-jdk/latest/general/release-notes/|
|   |Lifecycle|https://bell-sw.com/support/#roadmap|
|   |Certified platforms|https://bell-sw.com/pages/supported-configurations/|
|Trend Understanding|SNS|[@bellsoftware](https://x.com/bellsoftware)|
|   |Blog|https://bell-sw.com/blog/|
|   |GitHub|https://github.com/bell-sw/Liberica|
|Download|   |https://bell-sw.com/pages/downloads/ \*No authentication required|
|License|GPLv2 + Classpath Exception|   |

## SAP SapMachine
|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://github.com/SAP/SapMachine/wiki|
|   |Release notes|(not found)|
|   |Lifecycle|https://github.com/SAP/SapMachine/wiki/Maintenance-and-Support|
|   |Certified platforms|https://github.com/SAP/SapMachine/wiki/Certification-and-Java-Compatibility|
|Trend Understanding|SNS|[@SweetSapMachine](https://x.com/SweetSapMachine)|
|   |Blog|https://community.sap.com/t5/c-khhcw49343/SAP+Java+Virtual+Machine/pd-p/01200615320800003576|
|   |GitHub|https://github.com/SAP/SapMachine|
|Download|   |https://sap.github.io/SapMachine/ \*No authentication required (Download from GitHub)|
|License|GPLv2 + Classpath Exception|   |

## Amazon Corretto
|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://docs.aws.amazon.com/corretto/|
|   |Release notes (Corretto 8)|https://github.com/corretto/corretto-8/blob/develop/CHANGELOG.md|
|   |Release notes (Corretto 11)|https://github.com/corretto/corretto-11/blob/develop/CHANGELOG.md|
|   |Release notes (Corretto 17)|https://github.com/corretto/corretto-17/blob/develop/CHANGELOG.md|
|   |Release notes (Corretto 21)|https://github.com/corretto/corretto-21/blob/develop/CHANGELOG.md|
|   |Lifecycle|https://aws.amazon.com/corretto/faqs/#support|
|   |Certified platforms|https://aws.amazon.com/corretto/faqs/#Using_Amazon_Corretto|
|Trend Understanding|SNS|[@AWSOpen](https://x.com/AWSOpen)|
|   |Blog|https://aws.amazon.com/blogs/opensource/category/programing-language/java/|
|   |GitHub|https://github.com/corretto/|
|Download|   |https://downloads.corretto.aws/ \*No authentication required|
|License|GPLv2 + Classpath Exception|   |

## Microsoft Build of OpenJDK
This is not mentioned in the book because of not announced at the time of writing.

|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://learn.microsoft.com/en-us/java/openjdk/|
|   |Release notes|https://learn.microsoft.com/en-us/java/openjdk/release-notes|
|   |Lifecycle|https://learn.microsoft.com/en-us/java/openjdk/support|
|   |Certified platforms|(See above)|
|Trend Understanding|SNS|[@JavaAtMicrosoft](https://x.com/JavaAtMicrosoft)|
|   |Blog|https://devblogs.microsoft.com/java/|
|   |GitHub|https://github.com/microsoft/openjdk|
|Download|   |https://learn.microsoft.com/en-us/java/openjdk/download \*No authentication required|
|License|GPLv2 + Classpath Exception|   |

## Eclipse Temurin (Adoptium)
[Formerly known as AdoptOpenJDK, but the transition was completed in August 2021](https://blog.adoptopenjdk.net/2021/08/goodbye-adoptopenjdk-hello-adoptium/).

|General Information|Type and name|Where to find|
|:--|:--|:--|
|Development and Operation|Documents|https://adoptium.net/docs/|
|   |Release notes|(not found)|
|   |Lifecycle|https://adoptium.net/support/|
|   |Certified platforms|https://adoptium.net/supported-platforms/|
|Trend Understanding|SNS|[@adoptium](https://x.com/adoptium), [Slack](https://adoptium.slack.com/)|
|   |Blog|https://adoptium.net/blog/|
|   |GitHub|https://github.com/adoptium|
|Download|   |https://adoptium.net/temurin/releases \*No authentication required (Download from GitHub)|
|License|GPLv2 + Classpath Exception|   |
- Some of the JDK vendors mentioned in this article are [strategic members](https://adoptium.net/members/) of Eclipse Adoptium.

# Other notable JDKs
The following are basic links only.
## OpenJDK with HotSpot VM Base
### OpenJDK in each Linux distribution
- [Ubuntu](https://help.ubuntu.com/community/Java)
- [Debian](https://wiki.debian.org/Java)
- [Fedora](https://fedoraproject.org/wiki/Java)
- [Gentoo Linux](https://wiki.gentoo.org/wiki/Java)
- [Arch Linux](https://wiki.archlinux.org/index.php/Java)

\*Other links to OpenJDK packages for Linux distributions will be added as appropriate, so please point them out in the comments.

### JDK of the Japanese vendor
- [FUJITSU OpenJDK](https://software.fujitsu.com/jp/manual/manualfiles/m200009/b1fw6080/01z200/index.html) (for FUJITSU Software Enterprise Application Platform)
    - formerly known as [FJVM for FUJITSU Software Interstage](https://software.fujitsu.com/jp/manual/manualfiles/m180005/b1ws1303/02z200/b1303-00-09-01-03.html)
- [Hitachi's own Java VM](https://itpfdoc.hitachi.co.jp/manuals/link/cosmi_v1110/03J0820D/HJ080066.HTM) (for Hitachi Cosminexus)

### Others
- [Alibaba Dragonwell](https://dragonwell-jdk.io/)
- [ojdkbuild](https://github.com/ojdkbuild/ojdkbuild) (discontinued)
- [JetBrains Runtime](https://github.com/JetBrains/JetBrainsRuntime)
- [VMware Tanzu Spring](https://tanzu.vmware.com/spring)

​The listed below are not mentioned in the book.

- [Huawei BiSheng JDK](https://www.hikunpeng.com/en/developer/devkit/download/jdk)
- [Tencent Kona](https://cloud.tencent.com/document/product/1149)
- [OpenLogic's OpenJDK](https://www.openlogic.com/openjdk-downloads)
- [J-Class Solutions SegueJDK](https://www.j-class.com/java-jvm-solutions)

## OpenJDK with *NOT* HotSpot VM
- [IBM Semeru Runtimes](https://developer.ibm.com/languages/java/semeru-runtimes/)
    - formerly known as [AdoptOpenJDK with OpenJ9](https://adoptopenjdk.net/releases.html?jvmVariant=openj9), [transitioned from August 2021](https://developer.ibm.com/blogs/introducing-the-ibm-semeru-runtimes/) (Reference material: ["OpenJ9 + OpenJDK"](https://www.slideshare.net/takakiyo/openj9openjdk))
- [IBM SDK Java Technology Edition](https://www.ibm.com/docs/en/sdk-java-technology)
    - Reference material: ["About OpenJ9 VM and IBM Java"](https://www.slideshare.net/takakiyo/jvmopenj9-vmibm-java)
- [Azul Platform Prime](https://www.azul.com/products/prime/) (formerly known as Zing)
- [GraalVM](https://www.graalvm.org/)
    - Technically HotSpot based, but with a different JIT compiler (See chapter 5 of the book for details)
- [Mandrel](https://github.com/graalvm/mandrel) (not mentioned in the book)
    - Reference material: [Mandrel: A specialized distribution of GraalVM for Quarkus](https://developers.redhat.com/blog/2021/04/14/mandrel-a-specialized-distribution-of-graalvm-for-quarkus)