简介
在本文中,我们将探讨 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实现中使用的标准方面也有一些好处,这将确保应用程序稳定和良好维护。
原文
https://segmentfault.com/a/1190000018728811