京东商城企业网站建设分析,郑州专业网站建设公司详情,忘记网站后台admin密码,php 手机网站 模板作者 | petercao来源 | urlify.cn/yAn6ruOpenJDK是Sun在2006年末把Java开源而形成的项目#xff0c;这里的“开源”是通常意义上的源码开放形式#xff0c;即源码是可被复用的#xff0c;例如IcedTea、UltraViolet都是从OpenJDK源码衍生出的发行版。Oracle JDK采用了商业实现… 作者 | petercao 来源 | urlify.cn/yAn6ruOpenJDK是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是一致的。 在大多数LINUX发行版本里内置或者通过软件源安装的JDK都是安装的OpenJDK。# 什么是OpenJDK?历史上的原因是OpenJDK是JDK的开放源码版本以GPL协议的形式发布。
General Public License在JDK7的时候OpenJDK已经成为JDK7的主干开发版SUN JDK7是在OpenJDK7的
基础上发布的其大部分源码都相同只有少部分源码被替换掉。
使用JRL(Java Research LicenseJava研究授权协议)发布。
至于OpenJDK6则更是有其复杂的一面首先是OpenJDK6是JDK7的一个分支并且尽量去除Java SE7的新特性使其尽量的符合Java6的标准。# JDK和OpenJDK的区别1.授权协议的不同OpenJDK采用GPL V2协议发布而JDK则采用JRL协议发布。
两个协议虽然都是开放源代码的但是在使用上的不同在于GPL V2允许在商业上使用
而JRL只允许个人研究使用。
2.OpenJDK只包含最精简的JDKOpenJDK不包含其他的软件包比如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但是如果是使用Icedtea补丁的OpenJDK显示的是java。未验证# 参考Google Guava官方教程中文版http://ifeve.com/google-guava/Guava: Google Core Libraries for JavaGuava src and api doc:https://github.com/google/guavahttps://google.github.io/guava/releases/snapshot-jre/api/docs/【END】近期热文 面试珍藏最常见的200多道Java面试题被一个熟悉的面试题问懵了String...面试官如何实现幂等性校验年终盘点 | 2019年Java面试题汇总篇(附答案)关注下方二维码订阅更多精彩内容朕已阅