Oracle JDK 和 OpenJDK 的区别
简介
Java 是目前最流行和使用最广泛的编程语言之一。
Java JDK(Java Development Kit)有两种,一种是Oracle JDK 与 OpenJDK。
什么是 JDK?
JDK 代表 Java 开发工具包(Java Development Kit)。它是一个软件开发平台,特别适用于各种 Java 应用程序和Applet 的开发。
JDK 的某些组件包括Java 运行时环境(JRE)、解释器/加载器 (Java)、编译器 (javac)、归档器 (jar)、文档生成器 (Javadoc) 以及 Java 开发所需的其它工具。
什么是 Oracle JDK?
Oracle Java JDK 已经是 Oracle Corporation 收购后的产品,之前是由 Sun Microsystems 开发。它是一套计算机软件和规范,为开发各种应用软件提供了底层虚拟机系统。
它在嵌入式设备、手机、企业服务器、超级计算机等各种平台中找到了实现。但是,Oracle 自己维护这两个平台。
我们来看看 Java SE 的历史:
- JDK 测试版 – 1995
- JDK 1.0 – 1996 年 1 月
- JDK 1.1 – 1997 年 2 月
- J2SE 1.2 – 1998 年 12 月
- J2SE 1.3 – 2000 年 5 月
- J2SE 1.4 – 2002 年 2 月
- J2SE 5.0 – 2004 年 9 月
- Java SE 6 – 2006 年 12 月
- Java SE 7 – 2011 年 7 月
- Java SE 8 (LTS) – 2014 年 3 月
- Java SE 9 – 2017 年 9 月
- Java SE 10 (18.3) – 2018 年 3 月
- Java SE 11 (18.9 LTS) – 2018 年 9 月
- Java SE 12 (19.3) – 2019 年 3 月
请注意:斜体是已经不再支持的版本。
在 Java SE 7 之前,Java SE 的主要版本大约每两年发布一次。从 Java SE 6 迁移到 Java SE 6 花了五年时间,之后又花了三年时间才到达 Java SE 8。
从 Java SE 10 开始,人们开始期待每六个月发布一次新版本。但是并非所有版本都是长期支持 (LTS) 版本。由于 Oracle 的发布计划调整,LTS 产品的发布将仅每三年发布一次。
Java SE 11 是最新的 LTS 版本,Java SE 8 在 2020 年 12 月之前仍能获得免费的公开更新,用于非商业用途。
这个开发工具包在2010年甲骨文收购Sun Microsystems后才得了现在的名字。在此之前,它的名字是SUN JDK,它是Java编程语言的官方实现版本。
什么是 OpenJDK?
OpenJDK 是一个免费且开放的 Java 平台。它是由 sun Microsystems 在 2006 年发起的一个项目开发的。Oracle 在后来进一步赞助了它。Open JDK 项目附带的一些组件是 Java 类库、Java 编译器、Java 运行时环境和 Java 虚拟机。
让我们来看看 OpenJDK 版本:
- OpenJDK 6 ——基于 JDK 7,但经过修改以提供 Java 6 的开源版本
- OpenJDK 7 ——2011 年 7 月 28 日
- OpenJDK 7u ——该项目开发 Java Development Kit 7 的更新
- OpenJDK 8 ——2014 年 3 月 18 日
- OpenJDK 8u ——该项目开发 Java Development Kit 8 的更新
- OpenJDK 9 ——2017 年 9 月 21 日
- JDK 项目发布 2018 年 3 月 10 日至 20 日
- JDK 项目发布 2018 年 9 月 11 日至 25 日
- JDK 项目第 12 版 -稳定版阶段
Oracle JDK 与 OpenJDK
OracleJDK 和 OpenJDK 之间的一些主要区别如下:
- 发布周期
Open Java 每六个月发布一次,而 Oracle java 每三年发布一次。用户能够获得 oracle 对其版本的长期支持。而Open JDK 为任何版本提供更改,直到下一个版本发布。
- 许可证
Oracle JDK 依据 Oracle 二进制代码许可协议许可证,而OpenJDK 使用 GNU 通用公共许可证 (GNU GPL) 第 2 版,但有一个链接例外。
使用 Oracle 平台时存在一些许可证问题。正如 Oracle宣布的那样,如果没有商业许可,2019 年 1 月之后发布的 Oracle Java SE 8 的公共更新将无法用于商业或生产用途。而OpenJDK 是完全开源的,可以自由使用。
- 整体输出
这两个 Java 平台没有真正的技术差异,因为 Oracle JDK 的构建过程是基于 OpenJDK 的。就平台的整体性能而言,Oracle Java 在响应能力和 JVM 性能方面相对优于 OpenJDK。另一方面,OpenJDK 更频繁地发布版本;为此它增加了不稳定性。
规格
Oracle java 具有飞行记录器、Java 任务控制和应用程序类数据共享功能。而 OpenJDK 拥有字体渲染器功能。
与 Oracle Java 相比,OpenJDK 的发布非常频繁。
Oracle Java 更加注重稳定性,因为它更加重视更多的企业用户。
Oracle Java 拥有出色的 GC 选项以及更好的性能,比如改进的渲染工具,另一方面,OpenJDK 具有较少的 GC 选项和较慢的图形渲染。
OpenJDK 有一个广大用户的开源社区。
下载安装
Oracle JDK:https://www.oracle.com/java/technologies/downloads/
openJDK:
1 | yum install -y java-1.8.0-openjdk* |