openjdk和jdk的区别与联系
使用过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和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与JDK的区别分析
一.以下是具体分析: 以下内容转自http://fgh2011.iteye.com/blog/1771649: 使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JD ...
- OpenJDK,Oracle's OpenJDK,Oracle JDK的区别与选择
OpenJDK 单纯的OpenJDK指的是JDK的源码,以GPL协议开源,由企业和社区开发者共同维护和开发. Oracle's OpenJDK Oracle started providing ope ...
- OpenJDK和JDK区别
OpenJDK和JDK区别 OpenJDK与JDK的区别分析 Sun的JDK7.OpenJDK及IcedTea释疑 简介(ps): 简单来说jdk从7开始,弄出一个可以自由使用的公共版本(openjd ...
- OpenJDK和JDK区别(转)
使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk,那么到底什么是openjdk,它与sun jdk有什么关系和区别呢? 历史上的 ...
- eclipse中的两种Jre 及 Jre与Jdk的区别
分类: ——————————区分eclipse中的两种Jre———————- (Eclipse也是一个普通的Java程序,因此必须有一个JRE做为运行环境.如果你的机器上没有安装任何JRE(或者JDK ...
- JRE与JVM、JDK的区别
JRE与JVM.JDK的区别 一. 详细介绍1.JVM -- java virtual machine JVM就是我们常说的java虚拟机,它是整个java实现跨平台的 最核心的部分,所有的java程 ...
- 卸载OpenJDK安装JDK
卸载OpenJDK安装JDK rpm -qa | grep java rpm -qa | jdk java rpm -qa | grep java| xargs rpm -e --nodeps rpm ...
随机推荐
- MySQL的索引原理及使用
MySQL中的索引模型 Mysql中的索引使用的数据结构一般为搜索树,这里的搜索树,一般使用B树,这里补一下数据结构中的B树结构:说B树之前,先顺一个前置的知识点,平衡二叉树: 平衡二叉树 二叉树应该 ...
- 【ETL工具】DataX + DataXWeb 初使用过程记录
版本:DataX v202309 DataXWeb 2.1.3预发布版 DataX: Github:https://github.com/alibaba/DataX 功能介绍文档:https://g ...
- SpringBoot兼容SpringMVC带有.do后缀的请求
背景 MVC框架请求的都是.do后缀,但controller控制层拦截的是没有后缀的链接.如controller请求/111/222,当请求/111/222.do时,可以正常进入.当我们将存量一些旧工 ...
- 用 SQL 写的俄罗斯方块游戏「GitHub 热点速览」
在开始介绍上周热门开源项目之前,要插播一条开源新闻:Nginx 已正式迁移至 GitHub. 近日,Nginx 官方宣布将 Nginx 开源项目,从 Mercurial 迁移至 GitHub 代码托管 ...
- Google Analytics – GA4 & Tag Manager 概念篇
前言 当我们设计好网站或者 App 后, 我们要怎样知道这个产品用户是否满意呢? 如果发掘潜在的提升空间呢? 等用户反馈? 投诉? 显然不是上策, 更好的方式是观察. 身为一个产品经理, 我只要看着你 ...
- 全面掌握 Jest:从零开始的测试指南(上篇)
随着JavaScript在前后端开发中的广泛应用,测试已成为保证代码质量的关键环节. 为什么需要单元测试 在我们的开发过程中,经常需要定义一些算法函数,例如将接口返回的数据转换成UI组件所需的格式.为 ...
- mongodb 中rs.stauts()命令参数解析
转载请注明出处: rs.status()命令用于获取MongoDB副本集的状态信息.它提供了关于副本集中各个节点的详细信息,包括节点的健康状况.角色.选举状态等. 以下是查看一个mongo集群状态返回 ...
- 【赵渝强老师】使用MongoDB的命令行工具:mongoshell
一.启动mongo shell 安装好MongoDB后,直接在命令行终端执行下面的命令: mongo 如下图所示: 可选参数如下: 也可以简写为: 在mongo shell中使用外部编辑器,如:vi, ...
- Blazor开发框架Known-V2.0.13
大家好,国庆节快乐,Known又更新了一波功能. 继上个版本以来,一直在完善网站文档.KnownCMS开源项目和解决框架客户提出的一些问题.这期间客户反馈的问题主要如下: 微信模板消息收不到,查其原因 ...
- Linux内核源码阅读:AArch64的异常处理机制详谈(内核版本6.11)
任何玩过Arm64架构的朋友都知道,我们的ARM64架构有异常:Exception Levels, ELs,它是其异常处理机制的核心组成部分,允许系统在不同的特权级别下执行代码.ARM64定义了四 ...