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

    文章

    3005

    浏览量

    116820
  • JDK
    JDK
    +关注

    关注

    0

    文章

    83

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始实现中的一些功能?

    )。 如何使用 powerquad 加速器中的一些功能以及 CMSIS 原始实现中的一些功能。 Example: I do not want to call arm_mat_trans_q15 powerquad
    发表于 04-03 06:37

    时钟缓冲器的一些主要应用领域介绍

    电子设备和通信系统中都有广泛的应用,以下是一些主要的应用领域介绍:1.计算机与外设接口计算机内部的各种硬件设备需要通过总线相互通信,而这些设备的时钟信号通常是非常不稳
    的头像 发表于 04-02 16:30 8548次阅读
    时钟缓冲器的<b class='flag-5'>一些</b>主要应用领域介绍

    Oracle和NVIDIA合作加速向量搜索和企业数据处理

    Oracle 和 NVIDIA 正在与客户合作,将 GPU 加速的向量索引构建应用于实际工作负载。Oracle Private AI Services Container 初期支持 CPU 执行,现
    的头像 发表于 03-23 15:26 408次阅读

    Oracle软件在主机平台的应用

    在数字化转型浪潮中,企业核心业务系统对数据库的稳定性、性能与扩展性提出严苛要求。Oracle数据库凭借其深厚的技术积淀与主机平台(大型机、高端Unix小型机)的强强联合,成为金融、电信、能源等行业
    的头像 发表于 03-14 14:18 721次阅读

    爬壁机器人磁铁的一些常见问题

    爬壁机器人近几年比较火,它是类能够在垂直墙面、天花板、倾斜表面上移动和作业的特种机器人,今天我们不聊其它,只聊下关于磁吸附应用中的磁铁,以下是小编整理的关于爬壁机器人中磁铁的一些常见问题。
    的头像 发表于 01-09 10:06 409次阅读
    爬壁机器人磁铁的<b class='flag-5'>一些</b>常见问题

    关于六类网线一些问题的解答

    今天我们就围绕网友一些常见的关于六类网线的问题进行下汇总式解答: 问 六类网线可以当电源用吗? 答 六类网线并不是设计用于传输电力的电缆,因此般不建议将其用于电源传输。 尽管六类网线的线芯可以
    的头像 发表于 12-09 11:13 745次阅读

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

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

    蜂鸟E203的浮点指令集F的一些实现细节

    蜂鸟E203的浮点指令集F的一些实现细节 既然E203不是多发射,且为了节省面积,一些指令使用FPU内的同个子模块来执行,即FPU同时只能进行种计算,我们只在FPU内部署了11个
    发表于 10-24 08:57

    射频工程师需要知道的一些常见转接头

    ,是由于转接头的损坏造成的,而且有些接头的连接固定的方式不对,每次修好的仪器,过去后客户又按照他们原来的方式去拧紧了。特别是在一些生产型的企业,由于操作人员流动性比较
    的头像 发表于 08-06 17:39 1510次阅读
    射频工程师需要知道的<b class='flag-5'>一些</b>常见转接头

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

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

    Oracle Database@Amazon Web Services现已正式可用

    即日起,客户可以在亚马逊云科技北弗吉尼亚区域和俄勒冈区域使用Oracle Database@Amazon Web Services,后续将扩展至全球其他20个区域。 富达投资集团、全美互惠保险公司
    的头像 发表于 07-21 15:11 913次阅读

    IBM和Oracle深化合作伙伴关系

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

    JDK从8升级到21的问题集

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

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

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

    Debian和Ubuntu哪个好一些

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