简介
在本文中,我们将探讨 Oracle Java Development Kit 和 OpenJDK 之间的差异并进行比较。
Oracle JDK
Oracle JDK 由 Oracle 公司开发,该公司是 Sun 许可证,基于 Java 标准版规范实现。它以二进制产品的形式发布。它支持多种操作系统,如 Windows,Linux,Solaris,MacOS 等。它支持不同的平台,如 Intel 32 位和 64 位架构,ARM 架构和 SPARC。它完全基于 Java 编程语言。之后,该许可证宣布将根据 GPL(通用公共许可证)许可证发布。Oracle JDK 包含许多组件作为库形式的编程工具集合。
我们来看看 Java SE 的历史:
JDK Beta – 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 的主要版本大约每两年发布一次,直到 Java SE 7. 从 Java SE 6 开始花了五年时间,之后又花了三年时间到达 Java SE 8。
自 Java SE 10 以来,我们可以期待每六个月发布一次新版本。但是,并非所有版本都是长期支持(LTS)版本。由于 Oracle 的发布计划,LTS 产品发布仅每三年发布一次。
OpenJDK
OpenJDK 是 Java SE 平台版的开源和免费实现,它是 Sun Corporation(现在的 Oracle Corporation)于 2006 年开始的开发结果。它是根据 GNU GPL 许可证授权的。它最初于 2007 年发布。它由 Oracle Corporation,Red Hat,IBM,Apple Inc.,OpenJDK 和 Java Community 等开发。它是使用 C ++ 和 Java 编程语言编写的。它支持不同的操作系统,如 FreeBSD,Linux,Microsoft Windows,Mac OS X. OpenJDK 是 Java SE Platform Edition 的官方参考实现。
现在让我们看看 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 与 OpenJDK 之间的比较(信息图表)
Oracle 与 OpenJDK 之间的主要区别
Oracle 与 OpenJDK 都是市场上的热门选择; 让我们讨论一下 OracleJDK 与 OpenJDK 之间的一些主要差异:
Oracle JDK 版本将每三年发布一次,而 OpenJDK 版本每三个月发布一次。
Oracle JDK 将更多地关注稳定性,它重视更多的企业级用户,而 OpenJDK 经常发布以支持其他性能,这可能会导致不稳定。
Oracle JDK 支持长期发布的更改,而 Open JDK 仅支持计划和完成下一个发行版。
Oracle JDK 根据二进制代码许可协议获得许可,而 OpenJDK 根据 GPL v2 许可获得许可。
使用 Oracle 平台时会产生一些许可影响。如 Oracle 宣布的那样,在没有商业许可的情况下,在 2019 年 1 月之后发布的 Oracle Java SE 8 的公开更新将无法用于商业,商业或生产用途。但是,OpenJDK 是完全开源的,可以自由使用。
Oracle JDK 的构建过程基于 OpenJDK,因此 OpenJDK 与 Oracle JDK 之间没有技术差异。
顶级公司正在使用 Oracle JDK,例如 Android Studio,Minecraft 和 IntelliJ IDEA 开发工具,其中 Open JDK 不太受欢迎。
Oracle JDK 具有 Flight Recorder,Java Mission Control 和 Application Class-Data Sharing 功能,Open JDK 具有 Font Renderer 功能,这是 OpenJDK 与 Oracle JDK 之间的显着差异。
Oracle JDK 具有良好的 GC 选项和更好的渲染器,而 OpenJDK 具有更少的 GC 选项,并且由于其包含自己的渲染器的分布,因此具有较慢的图形渲染器选项。
在响应性和 JVM 性能方面,Oracle JDK 与 OpenJDK 相比提供了更好的性能。
与 OpenJDK 相比,Oracle JDK 的开源社区较少,OpenJDK 社区用户的表现优于 Oracle JDK 发布的功能,以提高性能。
如果使用 Oracle JDK 会产生许可影响,而 OpenJDK 没有这样的问题,并且可以以任何方式使用,以满足完全开源和免费使用。
Oracle JDK 在运行 JDK 时不会产生任何问题,而 OpenJDK 在为某些用户运行 JDK 时会产生一些问题。
根据使用方的使用和许可协议,现有应用程序可以从 Oracle JDK 迁移到 Open JDK,反之亦然。
Oracle JDK 将从其 10.0.X 版本将收费,用户必须付费或必须依赖 OpenJDK 才能使用其免费版本。
Oracle JDK 不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本。
Oracle JDK 以前的 1.0 版以前的版本是由 Sun 开发的,后来被 Oracle 收购并为其他版本维护,而 OpenJDK 最初只基于 Java SDK 或 JDK 版本 7。
Oracle JDK 发布时大多数功能都是开源的,其中一些功能免于开源,并且根据 Sun 的许可授权,而 OpenJDK 发布了所有功能,如开源和免费。
Oracle JDK 完全由 Oracle 公司开发,而 Open JDK 项目由 IBM,Apple,SAP AG,Redhat 等顶级公司加入和合作。
Oracle 与 OpenJDK 比较表
以下是 Oracle 与 OpenJDK 之间最重要的比较:
Oracle 与 OpenJDK 之间比较
Oracle JDK
OpenJDK
执照
它是根据 GPL(通用公共许可证)许可证授权的
它是根据 GNU GPL(通用公共许可证)许可证授权的
发展
由 Sun Microsystems Inc. 开发
由 Oracle,OpenJDK 和 Java 社区开发
性能
根据 Sun JDK 的开发和实现提供性能
提供由 Oracle JDK 之上的一些供应商开发的高性能
可扩展性
根据 Sun 的实施
可以使用其他库或 Oracle JDK 进行改进
费用
Sun 的官方执行许可证
开源和免费实施可供免费使用
速度
由 Sun Microsystems Inc. 开发
第三方供应商将通过进行一些调整来提高 JVM 的速度
操作系统
支持 Windows,Linux,Solaris,MacOS
FreeBSD,Linux,Microsoft Windows,Mac OS X.
便于使用
可以与任何应用程序开发一起使用
可以与任何应用程序开发和其他开源工具一起使用,以提高开源实现模型的性能。
结论
Oracle JDK 可用于开发 Java Web 应用程序,独立应用程序以及许多其他图形用户界面以及其他开发工具。Oracle JDK 执行的所有操作或任务也可以由 OpenJDK 执行,但只有 Oracle 与 OpenJDK 之间的区别在于 Open JDK 在现有 Oracle JDK 之上的许可和其他工具集成和实现。使用 OpenJDK 的优点是可以根据应用程序的要求修改性能,可伸缩性和实现,以根据需要调整 Java 虚拟机。
OpenJDK 的优势更多,Oracle JDK 的使用在 Oracle JDK 实现中使用的标准方面也有一些好处,这将确保应用程序稳定和良好维护。