跳至主要內容

JDK 介绍

Steven2024年10月24日大约 2 分钟java

参考:

  • 为什么还用 jdk8 https://developer.aliyun.com/article/1108370

OpenJDK 发展

历史:

  • 1996 年 1 月,Sun 公司发布了 Java 的第一个开发工具包,我们称它为 Sun JDK。
  • 2006 年 Sun 公司在 JavaOne 大会上宣布将 Java 开源,并于 2009 年 4 月 15 日正式发布 OpenJDKopen in new window
  • 2009 年,甲骨文(Oracle)公司宣布收购 Sun 公司,从此更名为 Oracle JDK。
  • 2019 年 4 月 16 号 Oracle 宣布 JDK 开始商用收费,JDK 从 8u211 版本开始。

OpenJDK 是由 OpenJDK Community 、Oracle、IBM 领导,连同 Alibaba,Amazon,Ampere,Azul,BellSoft,Canonical,Fujitsu,Google,Huawei,Intel,Java Community,JetBrains,London Java Community,Microsoft,Red Hat,SAP,SouJava,SUSE,Tencent,Twitter ,VMWare 等第三方共同开发、维护的 Java SE 开源参考实现。

OpenJDK 发行版

OpenJDK builds,也叫 OpenJDK 发行版。所有的 JDK 都源自于 OpenJDK。所以严格意义上来说 Oracle JDK 也是 Open JDK 的一个发行版而已。

不同的是 Oracle JDK 持有 Java 商标,可以使用它以及宣传它,而 OpenJDK 不能使用 Java 商标(关键字)。这一点从 java -version 里能看出来:

# Oracle JDK
$ java -version
java version "11.0.20" 2023-07-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.20+9-LTS-256)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.20+9-LTS-256, mixed mode)

# RedHat OpenJDK
$ java -version
openjdk version "11.0.24" 2024-07-16
OpenJDK Runtime Environment (Red_Hat-11.0.24.0.8-2) (build 11.0.24+8)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.24.0.8-2) (build 11.0.24+8, mixed mode, sharing)

# Ubuntu OpenJDK
$ java -version
openjdk version "17.0.12" 2024-07-16
OpenJDK Runtime Environment (build 17.0.12+7-Ubuntu-1ubuntu222.04)
OpenJDK 64-Bit Server VM (build 17.0.12+7-Ubuntu-1ubuntu222.04, mixed mode, sharing)

# Zulu OpenJDK
$ java -version
openjdk version "21.0.5" 2024-10-15 LTS
OpenJDK Runtime Environment Zulu21.38+21-CA (build 21.0.5+11-LTS)
OpenJDK 64-Bit Server VM Zulu21.38+21-CA (build 21.0.5+11-LTS, mixed mode, sharing)

# Alibaba OpenJDK
$ java -version
openjdk version "21.0.4.0.4" 2024-07-16
OpenJDK Runtime Environment (Alibaba Dragonwell Extended Edition)-21.0.4.0.4+7-GA (build 21.0.4.0.4)
OpenJDK 64-Bit Server VM (Alibaba Dragonwell Extended Edition)-21.0.4.0.4+7-GA (build 21.0.4.0.4, mixed mode, sharing)

为了保证多种 OpenJDK 发行版是 “靠谱” 的,JCP(Java Community Process)open in new window 规定发行版发布前需要通过 TCK 兼容性测试来认证该发行版是 “靠谱” 的。

阿里巴巴入选的 JCP 最高执行委员会,何方神圣? —— https://mp.weixin.qq.com/s/F4y3GIVSFAVj4EmjAkJ4FQ?spm=a2c6h.12873639.article-detail.22.6b473f045jDP2G

发行版LTS未改上游的构建TCK 测试宽松式许可证商业支持
AdoptOpenJDK可选通过可选(IBM)
Eclipse Temurin可选通过可选(IBM)
Oracle OpenJDK否 ❌是 ✅通过
Oracle GraalVM CE否 ❌通过
Oracle Java SE通过否 ❌是 ✅
IBM Java SDK通过否 ❌是 ✅
Red Hat OpenJDK通过是 ✅
Linux 捆绑发行版通过
Azul Zulu通过可选
Amazon Corretto通过可选(AWS)
Alibaba Dragonwell通过
Tencent Kona通过
Huawei Bisheng通过

todo 对比各发新版

https://developer.aliyun.com/article/1108370