当前位置:首页 > 数码 >

openjdk和jdk推荐哪个(openjdk哪个版本最好)

来源:原点资讯(www.yd166.com)时间:2022-12-03 08:00:13作者:YD166手机阅读>>

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和jdk推荐哪个,openjdk哪个版本最好(1)

在大多数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。

栏目热文

openjdk可以替代jdk吗(为什么不能用openjdk)

openjdk可以替代jdk吗(为什么不能用openjdk)

2 个月前,InfoQ 英文站发布了一份《2019 Java 发展趋势报告》,从技术采用生命周期的角度,分析了 Java...

2022-12-03 08:42:18查看全文 >>

忍者必须死3怎么代打(忍者必须死3怎样操作)

忍者必须死3怎么代打(忍者必须死3怎样操作)

越来越多的普通人靠打游戏找到了自己的出路。文/菲斯喵打游戏赚钱,听起来是一桩美事,越来越多的年轻人把它当做是理想职业。挡...

2022-12-03 08:34:57查看全文 >>

忍者必须死3沙克一打五(忍者必须死3沙克怎么打死)

忍者必须死3沙克一打五(忍者必须死3沙克怎么打死)

如果要问现在谁是所有跑酷游戏里最成功的,那答案只有一个——《忍者必须死3》。凭借着特色十足的玩法和酷炫爽快的游戏体验,它...

2022-12-03 08:10:45查看全文 >>

忍者必须死3沙克大招(忍者必须死3为啥没出沙克)

忍者必须死3沙克大招(忍者必须死3为啥没出沙克)

画大饼挖深坑,这是每年E3的主题。然而即便这样,却依然抵挡不住玩家一浪高过一浪的热情。五湖四海的同好者共聚一堂,为着同一...

2022-12-03 08:01:37查看全文 >>

忍者必须死3沙克最后阶段(忍者必须死3沙克和残心的仇)

忍者必须死3沙克最后阶段(忍者必须死3沙克和残心的仇)

2003年的亚特兰大,是迈克尔-乔丹14次全明星生涯的终点。在这届送别意味浓重的比赛上,诞生了全明星71年历史上绝无仅有...

2022-12-03 08:43:57查看全文 >>

openjdk17与jdk8性能差距(jdk17与jdk8速度对比)

openjdk17与jdk8性能差距(jdk17与jdk8速度对比)

本文将使用开源的 Chronicle Queue(OpenHFT/Chronicle-Queue: Micro seco...

2022-12-03 08:46:31查看全文 >>

openjdk和jdk有多大差距(openjdk和jdk的区别)

openjdk和jdk有多大差距(openjdk和jdk的区别)

OpenJDK与JDK的区别分析一、以下是具体分析:使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或...

2022-12-03 08:31:27查看全文 >>

为啥用jdk不用openjdk8(查看是否安装openjdk)

为啥用jdk不用openjdk8(查看是否安装openjdk)

通常 OpenJDK 8 和 11 都能互相编译和通用。我们建议使用 11,但是如果你使用 JDK 8 的话也是没有问题...

2022-12-03 08:39:28查看全文 >>

如何判断是不是openjdk(为啥用jdk不用openjdk)

如何判断是不是openjdk(为啥用jdk不用openjdk)

1 简介判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是否包含敏感词汇、判断日志是否有ERROR信息等...

2022-12-03 08:43:17查看全文 >>

openjdk和jdk哪个好(openjdk和jdk的区别)

openjdk和jdk哪个好(openjdk和jdk的区别)

市面上可供选择的JVM发行版还是有不少的。选择合适的JVM需要考虑不同的因素。性能是其中一个重要的因素。靠谱的性能研究是...

2022-12-03 08:39:37查看全文 >>

文档排行