OpenJDK和JDK区别
简介(ps):
简单来说jdk从7开始,弄出一个可以自由使用的公共版本(openjdk)。
原来继续分为个人版(研究使用)和企业(商用)是有版权的。 关于开源:
原始的jdk并没有完全开源。
openjdk,应该是完全开源的,对于公用原始版的部分不能开源的应该也有自己的开源实现。
在大多数LINUX发行版本里,内置或者通过软件源安装的JDK,都是安装的OpenJDK,
一,那么到底什么是OpenJDK
历史上的原因是,OpenJDK是JDK的开放源码版本,以GPL协议的形式发布。(General Public License) 在JDK7的时候,OpenJDK已经成为JDK7的主干开发版,SUN JDK7是在OpenJDK7的基础上发布的,其大部分源码都相同,只有少部分源码被替换掉。
使用JRL(Java Research License,Java研究授权协议)发布。
至于OpenJDK6则更是有其复杂的一面,首先是OpenJDK6是JDK7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。
二,关于JDK和OpenJDK的区别,可以归纳为以下几点:
授权协议的不同:
OpenJDK采用GPL V2协议发布,而JDK则采用JRL协议发布。
两个协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK只包含最精简的JDK:
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
OpenJDK源代码不完整:
这个很容易想到,在采用GPL协议的OpenJDK中,SUN JDK的一部分源代码因为产权的问题无法开放OpenJDK使用,其中最主要的部分就是JMX中的可选元件SNMP部分的代码。
因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。
而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。
OpenJDK和IcedTea的关系:
IcedTea项目最初是由于OpenJDK不完整(因产权 而造成的障碍)而创立的,社区需要一个完整的开源工具链及代码库。
IcedTea长期以来一直是OpenJDK的一套补丁,正如刚才我所说到的,它有一个 基于“./configure”的不同的构建系统。
在OpenJDK中,我们已经替换了产权代码(encumbered code),因此不再有障碍了。
正因为我们的努力,IcedTea项目已经减少了使用补丁的数量。
IcedTea中看上去不错的一点是,它的 configure脚本使得在多种不同的模式下构建OpenJDK变得很容易,比如使用Zero Assembler Port在非x86/sparc芯片上来支持编译等等。
IcedTea提供的一大块内容是plugin/java-web-start基础架构。
部分源代码用开源代码替换:
由于产权的问题,很多是SUN JDK的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
不能使用Java商标:
这个很容易理解,在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK,但是如果是使用Icedtea补丁的OpenJDK,显示的是java。(未验证)
OpenJDK和JDK区别的更多相关文章
- OpenJDK和JDK区别(转)
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...
- OpenJDK与JDK的区别及Ubuntu下的安装方法
OpenJDK与JDK的区别: OpenJDK是JDK的开放原始码版本,以GPL协议的形式放出.两者的授权协议的不同,且在采用GPL协议的OpenJDK中,SUNJDK的一部分源代码因为产权的问题无法 ...
- [转] openjdk和jdk的区别与联系
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...
- OpenJDK和JDK的区别
作者:Aloys寒风链接:https://www.zhihu.com/question/19646618/answer/40621705来源:知乎著作权归作者所有,转载请联系作者获得授权. 使用过LI ...
- openJdk和sun Jdk区别和安装
openJdk和sun jdk的区别 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SU ...
- OpenJDK与JDK的区别分析
一.以下是具体分析: 以下内容转自http://fgh2011.iteye.com/blog/1771649: 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JD ...
- POPTEST老李谈JVM、JRE、JDK、java ee sdk with jdk区别
POPTEST老李谈JVM.JRE.JDK.java ee sdk with jdk区别 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等 ...
- 卸载OpenJDK安装JDK
卸载OpenJDK安装JDK rpm -qa | grep java rpm -qa | jdk java rpm -qa | grep java| xargs rpm -e --nodeps rpm ...
- OpenJDK,Oracle's OpenJDK,Oracle JDK的区别与选择
OpenJDK 单纯的OpenJDK指的是JDK的源码,以GPL协议开源,由企业和社区开发者共同维护和开发. Oracle's OpenJDK Oracle started providing ope ...
随机推荐
- 关于实现udev/mdev自动挂载与卸载
在网上有很多关于讲mdev的自动挂载基本上都是一个版本,经过测试自动挂载确实可行,但是关于自动卸载mdev似乎不能很好的支持,经过修改已经可以做到与udev的效果相似.不能在挂载的目录中进行热插拔,否 ...
- python部分面试- 测试维度
2. 软件测试的维度 1. 正确性:功能 正确 2. 健壮性: 意外的输入,不会崩溃 3. 性能: 大压力, 依然能工作 4. 可靠性: 长时间,不会崩溃 5. 易用性: 目标客户,都易用 6. 安全 ...
- C#异步Task编程模型实战手册
一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的第一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理 ...
- Error opening terminal: xterm-256color
在使用gdb调试linux内核时,提示如下错误: arm-none-linux-gnueabi-gdb --tui vmlinux Error opening terminal: xterm-256c ...
- 11、TopN实战
1.Java版本: 1.1.取前3 package sparkcore.java; import java.util.List; import org.apache.spark.SparkConf; ...
- ethtool 解决网卡丢包严重和网卡原理
1 概述 最近业务上老有问题,查看发现overruns值不断增加,学习了一下相关的知识.发现数值也在不停的增加.发现这些 errors, dropped, overruns 表示的含义还不大一样. ...
- ClickHouse高可用集群的配置
上一篇文章写过centos 7下clickhouse rpm包安装和基本的目录结构,这里主要介绍clickhouse高可用集群的部署方案,因为对于默认的分布式表的配置,每个分片只有一份,这样如果挂掉一 ...
- C# System.Collections.Generic.Dictionary
using System; using System.Collections.Generic; public class Example { public static void Main() { / ...
- vue改变了数据却没有自动刷新
有两个按钮,按钮上有个number属性,当此值为偶数时,按钮显示为红色. 最初的数据如下:"a": [{ name: "one" },{ name: " ...
- MySQL安装、配置、测试
MySQL安装.配置.测试(win7_64bit) 目录 1.概述 2.本文用到的工具 3.MySQL安装配置 4.Java访问MySQL测试 5.注事事项 6.相关博文 >>看不清的图片 ...