使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢?

历史上的原因是,openjdk是jdk的开放原始码版本,以GPL协议的形式放出。在JDK7的时候,openjdk已经成为jdk7的主干开 发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。

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

关于JDK和OpenJDK的区别,可以归纳为以下几点:

授权协议的不同:
openjdk采用GPL V2协议放出,而JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK不包含Deployment(部署)功能:
部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的。
OpenJDK源代码不完整:
这个很容易想到,在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码 将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码 (OpenJDK6),促使OpenJDK更加完整。
部分源代码用开源代码替换:
由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
openjdk只包含最精简的JDK:
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
不能使用Java商标:
这个很容易理解,在安装openjdk的机器上,输入“java -version”显示的是openjdk,但是如果是使用Icedtea补丁的openjdk,显示的是java。(未验证)
总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。

openjdk sunjdk区别相关推荐

  1. Java常见面试题:Oracle JDK 和 OpenJDK 的区别?

    Oracle JDK 和 OpenJDK 的区别? 可能在看这个问题之前很多人和我一样并没有接触和使用过 OpenJDK.那么Oracle和OpenJDK之间是否存在重大差异?下面我通过收集到的一些资 ...

  2. 不过如此! jdk 的安装/配置环境变量 jdk与openjdk 的区别 jdk 官网下载所需账号密码 虚拟机基础环境配置 超详细安装教程/介绍 Ubuntu18.04 SDN软件定义网络实验

    前情提要:我们已经完成了虚拟机的联网.ssh + vmtools + net-tools + vim的基础环境配置.接下来将进行jdk的安装与环境变量的配置,并介绍jdk与openjdk的区别,分享一 ...

  3. JDK和OpenJDK的区别

    关于JDK和OpenJDK的区别,可以归纳为以下几点: 授权协议的不同: openjdk采用GPL V2协议放出,而JDK则采用JRL放出.两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL ...

  4. java基础总结(二十)--Oracle/Sun JDK与OpenJDK的区别和联系

    来自:https://blog.csdn.net/wangjianno2/article/details/52015442与https://www.cnblogs.com/zengkefu/p/563 ...

  5. openJDK与JDK的区别

    使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...

  6. Oracle JDK 和 OpenJDK 有什么区别?

    OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的"开源 "是通常意义上的源码开放形式,即源码是可被复用的,例如IcedTea.UltraViolet都是从Op ...

  7. 面试官 | Oracle JDK 和 OpenJDK 有什么区别?

    作者 | petercao 来源 | urlify.cn/yAn6ru OpenJDK是Sun在2006年末把Java开源而形成的项目,这里的"开源"是通常意义上的源码开放形式,即 ...

  8. OpenJDK与JDK的区别分析

    一.以下是具体分析: 以下内容转自http://fgh2011.iteye.com/blog/1771649: 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JD ...

  9. openjdk和jdk的区别与联系

    使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...

最新文章

  1. 20090701随笔
  2. 《机器学习》 —— 第一章:绪论 学习笔记
  3. Unsupported Hardware Detected
  4. Nginx SSL+tomcat集群配置SSL,ngnix配置SSL后js/css访问出现404
  5. 如何调位置_如何知道手表是偷停还是真没动力了?看完之后你在家也能测
  6. 信息学奥赛一本通 1232:Crossing River | OpenJudge NOI 4.6 702:Crossing River
  7. 【bzoj4868】[Shoi2017]期末考试 前缀和+暴力
  8. Spring Security视频地址
  9. [产品相关] A/B测试终极指南(翻译)
  10. c语言结构体多次调用错误,C语言在使用中遇到了一个结构体赋值失败的问题?...
  11. 计算机语言--python
  12. 2020 博客之星”年度总评选 TOP 200 名单已出,大家快来看看吧,同时欢迎围观技术大佬们
  13. oracle数据库常用的函数总结
  14. C语言2019软件,c语言模拟编程学习软件v2019 最新版
  15. USB Server远程连接USB实现方式
  16. 搭建无线打印服务器,用旧电脑轻松架设无线网络打印服务器
  17. 职场小白如何将图片转文字?这个方法建议收藏使用!
  18. 解决vue中无法取得methods方法中的return值,获得是undefined
  19. 大师系列彼•奇层查股
  20. 深入理解Java集合框架

热门文章

  1. 假设以带头结点的循环链表表示队列_[leetcode链表系列]2 删除链表中的节点
  2. 相机开发:海康板卡相机开发
  3. 【知识星球】LeNet5,AlexNet,VGG,MobileNet它们的前身都是什么,你知道吗?
  4. 【cntk速成】cntk图像分类从模型自定义到测试
  5. 中国交通节能减排行业运营效益状况及十四五建设格局分析报告2021-2027年
  6. 全球及中国生物识别车辆访问技术行业十四五应用现状及未来展望规划报告2022-2027年
  7. 全球及中国潜水压力传感器行业运行态势及发展战略研究报告2022-2027年
  8. 【转】使用TCP协议连续传输大量数据时,是否会丢包,应如何避免?
  9. 农民代言人谋定农业大健康--万祥军:创业路上功能性农业
  10. 2019最新Python学习路线图:如何用Python创建微信机器人