0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenJDK和Oracle JDK的一些区别

汽车玩家 来源:今日头条 作者:胖虎读书 2020-04-12 19:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的“开源”是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea、UltraViolet都是从OpenJDK源码衍生出的发行版。

Oracle JDK采用了商业实现,而OpenJDK使用的是开源的FreeType。

当然,“相同”是建立在两者共有的组件基础上的,Oracle JDK中还会存在一些Open JDK没有的、商用闭源的功能。

例如从JRockit移植改造而来的Java Flight Recorder,预计以后JRockit的MissionControl移植到HotSpot之后,也会以Oracle JDK专有、闭源的形式提供。

Oracle的项目发布经理Joe Darcy在OSCON 2011上对两者关系的介绍也证实了OpenJDK 7和Oracle JDK 7在程序上是非常接近的,两者共用了大量相同的代码.。

如下图,注意图中提示了两者共同代码的占比要远高于图形上看到的比例,所以我们编译的OpenJDK,基本上可以认为性能、功能和执行逻辑上都和官方的Oracle JDK是一致的。

OpenJDK和Oracle JDK的一些区别

在大多数Linux发行版本里,内置或者通过软件源安装的JDK,都是安装的OpenJDK。

什么是OpenJDK?

历史上的原因是,OpenJDK是JDK的开放源码版本,以GPL协议的形式发布。

开源协议参考: 软件开发中的开源协议详解

在JDK7的时候,OpenJDK已经成为JDK7的主干开发版,SUN JDK7是在OpenJDK7的 基础上发布的,其大部分源码都相同,只有少部分源码被替换掉。 使用JRL(Java Research License,Java研究授权协议)发布。

至于OpenJDK6则更是有其复杂的一面,首先是OpenJDK6是JDK7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。

JDK和OpenJDK的区别

1.授权协议的不同

OpenJDK采用GPL V2协议发布,而JDK则采用JRL协议发布。两个协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用, 而JRL只允许个人研究使用。

2.OpenJDK只包含最精简的JDK

OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

3.OpenJDK源代码不完整

这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放OpenJDK使用,其中最主要的部分就是JMX中的可选元件SNMP部分的代码。

因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。

而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。

4.OpenJDK和IcedTea的关系

IcedTea项目最初是由于OpenJDK不完整(因产权 而造成的障碍)而创立的,社区需要一个完整的开源工具链及代码库。

IcedTea长期以来一直是OpenJDK的一套补丁,正如刚才我所说到的,它有一个 基于“./configure”的不同的构建系统。

在OpenJDK中,我们已经替换了产权代码(encumbered code),因此不再有障碍了。 正因为我们的努力,IcedTea项目已经减少了使用补丁的数量。

IcedTea中看上去不错的一点是,它的 configure脚本使得在多种不同的模式下构建OpenJDK变得很容易,比如使用Zero Assembler Port在非x86/sparc芯片上来支持编译等等。

IcedTea提供的一大块内容是plugin/java-web-start基础架构。

5.部分源代码用开源代码替换

由于产权的问题,很多是SUN JDK的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。

6.不能使用Java商标

这个很容易理解,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • JAVA
    +关注

    关注

    20

    文章

    2997

    浏览量

    115659
  • JDK
    JDK
    +关注

    关注

    0

    文章

    83

    浏览量

    17097
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    贴片电容精度J±5%的一些详细知识

    贴片电容精度J±5%表示电容的实际值与标称值之间的偏差范围在±5%以内 ,以下是关于贴片电容精度J±5%的一些详细知识: 、精度等级含义 J±5% :字母“J”在贴片电容的标识中通常表示标称精度
    的头像 发表于 11-20 14:38 131次阅读
    贴片电容精度J±5%的<b class='flag-5'>一些</b>详细知识

    数据库数据恢复—服务器异常断电导致Oracle数据库故障的数据恢复案例

    备份,仅有一些断断续续的归档日志。 Oracle数据库恢复流程: 1、检测数据库故障情况; 2、尝试挂起并修复数据库; 3、解析数据库文件; 4、导出并验证恢复的数据库文件。
    的头像 发表于 07-24 11:12 436次阅读
    数据库数据恢复—服务器异常断电导致<b class='flag-5'>Oracle</b>数据库故障的数据恢复案例

    IBM和Oracle深化合作伙伴关系

    近日,IBM 正在与 Oracle 合作,将 IBM 旗舰 AI 产品组合 watsonx 的强大功能引入 Oracle 云基础设施 (OCI)。 借助 OCI 的原生人工智能服务,IBM 与 Oracle
    的头像 发表于 06-30 14:15 830次阅读

    JDK从8升级到21的问题集

    、背景与挑战 1. 升级动因 ◦Oracle长期支持策略 ◦现代特性需求:协程、模式匹配、ZGC等 ◦安全性与性能的需求 ◦AI新技术引入的版本要求 2. 项目情况 ◦100+项目并行升级
    的头像 发表于 06-06 16:49 590次阅读

    oracle数据恢复—oracle数据库误执行错误truncate命令如何恢复数据?

    oracle数据库误执行truncate命令导致数据丢失是种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法
    的头像 发表于 06-05 16:01 602次阅读
    <b class='flag-5'>oracle</b>数据恢复—<b class='flag-5'>oracle</b>数据库误执行错误truncate命令如何恢复数据?

    Debian和Ubuntu哪个好一些

    兼容性对比Debian和Ubuntu哪个好一些,并为您揭示如何通过RAKsmart服务器释放Linux系统的最大潜能。
    的头像 发表于 05-07 10:58 852次阅读

    树莓派在自动化控制项目中的一些潜在应用

    自动化控制项目中的一些潜在应用。之前,我们已经为Arduino平台探讨了相同的话题。我们确定Arduino是个出色的教育工具,但由于一些限制,它无法在工业环境中完全
    的头像 发表于 03-25 09:45 476次阅读
    树莓派在自动化控制项目中的<b class='flag-5'>一些</b>潜在应用

    适用于Oracle的SSIS数据流组件:提供快速导入及导出功能

    包括优化的 Oracle Source、Oracle Destination 和 Oracle Lookup 组件,以及提供系列 Oracle
    的头像 发表于 01-15 10:51 1441次阅读
    适用于<b class='flag-5'>Oracle</b>的SSIS数据流组件:提供快速导入及导出功能

    从Delphi、C++ Builder和Lazarus连接到Oracle数据库

    从 Delphi、C++ Builder 和 Lazarus 连接到 Oracle 数据库 Oracle 数据访问组件 (ODAC) 是个组件库,它为 32 位和 64 位平台提供从 Delphi
    的头像 发表于 01-15 10:01 1343次阅读

    适用于Oracle的Devart Excel插件:轻松管理数据

    工作簿中的数据,编辑这些数据并将其保存回 Oracle。它使您能够像使用 Excel 工作表样处理 Oracle 数据,可以轻松进行数据清理和重复数据删除的工作,并将 Excel 的所有强大
    的头像 发表于 01-14 11:11 942次阅读
    适用于<b class='flag-5'>Oracle</b>的Devart Excel插件:轻松管理数据

    AN-202: IC放大器用户指南:去耦、接地及其他一些要点

    电子发烧友网站提供《AN-202: IC放大器用户指南:去耦、接地及其他一些要点.pdf》资料免费下载
    发表于 01-13 15:16 3次下载
    AN-202: IC放大器用户指南:去耦、接地及其他<b class='flag-5'>一些</b>要点

    适用于Oracle的ODBC驱动程序

    适用于 Oracle 的 ODBC 驱动程序 Devart ODBC Driver for Oracle种高性能连接解决方案,具有企业级功能,可用于从32位和64位 Windows、macOS
    的头像 发表于 01-13 09:17 848次阅读

    AN29-关于DC-DC转换器的一些想法

    电子发烧友网站提供《AN29-关于DC-DC转换器的一些想法.pdf》资料免费下载
    发表于 01-08 13:57 0次下载
    AN29-关于DC-DC转换器的<b class='flag-5'>一些</b>想法

    云服务器还是服务器好用一些

    云服务器还是服务器好用一些?云服务器与服务器各有优势。服务器作为独立物理设备,适合需高性能、物理控制和安全性高的场景;而云服务器基于云计算技术,提供灵活资源分配、按需付费、便捷管理和丰富服务,更适合需快速响应、大规模数据处理和低成本运维的场景。以下是UU云小编对两者的区别
    的头像 发表于 12-26 10:08 883次阅读

    数据库数据恢复—ORACLE常见故障的数据恢复可行性分析

    Oracle数据库常见故障表现: 1、ORACLE数据库无法启动或无法正常工作。 2、ORACLE ASM存储破坏。 3、ORACLE数据文件丢失。 4、
    的头像 发表于 12-10 11:35 673次阅读