Oracle JDK vs OpenJDK

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区别
https://www.cnblogs.com/straybirds/p/8746532.html

在大多数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。(未验证) 


refs:

Google Guava官方教程(中文版)
http://ifeve.com/google-guava/

Guava: Google Core Libraries for Java

Guava src and api doc:
https://github.com/google/guava
https://google.github.io/guava/releases/snapshot-jre/api/docs/

原文地址:https://www.cnblogs.com/bluestorm/p/8965656.html

时间: 2024-11-08 04:58:46

Oracle JDK vs OpenJDK的相关文章

Linux安装Oracle JDK替换OpenJDK详解

Linux安装Oracle JDK替换OpenJDK详解 作者:旸仔发表于:2013-3-11分类:Linux 众所周知,由于Oracle公司的JDK的版权问题,大多数Linux发行版在安装时都会附带开源的无版权问题的OpenJDK,以支持某些 java程序软件.但是如果我们在Linux下做一些java语言的开发,很可能还是需要安装和使用Oracle公司的原版JDK(以下简称 “JDK”).如何安装JDK并替换掉OpenJDK呢?今天旸仔做一个详细的解答: 毋庸置疑,如果一个系统内同时存在一个以

你安装的是 SUN/Oracle JDK 还是 OpenJDK ?

目录 1 如何查看你安装的 JDK 版本 1.1 要用到的命令行工具 1.2 查看的命令 1.2.1 如果是 SUN/OracleJDK, 显示信息为: 1.2.2 如果 OpenJDK, 显示信息为: 2 什么是 OpenJDK 2.1 OpenJDK 的来历 2.2 Oracle JDK 的来历 3 Oracle JDK 与 OpenJDK 的区别 3.1 主要不同 3.2 授权协议的不同 3.3 OpenJDK 不包含 Deployment 功能 3.4 OpenJDK 源码不完整 1 如

centos7 安装oracle jdk 与openjdk 实现切换

1. 分别安装oraclejdk 与openjdk #下载安装oraclejdk rpm -ivh --prefix=/usr.java/java1.8 ***.rpm #安装openjdk su -c "yum install java-1.8.0-openjdk" 2. 切换不同的java jdk sudo alternatives --config java #按提示选择不同的版本 3. 验证版本 java -veriosn

oracle jdk和openjdk区别;idea如何加载jdk源码并调试jdk代码

原文地址:https://www.cnblogs.com/shengulong/p/11403448.html

[转帖] 部分收费的Oracle JDK VS 完全免费的OpenJDK

来源: http://www.flammulina.com/2018/10/28/%E9%83%A8%E5%88%86%E6%94%B6%E8%B4%B9%E7%9A%84oracle-jdk-vs-%E5%AE%8C%E5%85%A8%E5%85%8D%E8%B4%B9%E7%9A%84openjdk/ 本文将讨论Oracle JDK和OpenJDK之间的区别.注意目前 OpenJDK 和 Oracle JDK 仅由Oracle创建和维护.在详细介绍之前,让我们回顾一下JDK是什么,在开始对比

Fedora Server 21下OpenJdk和Oracle Jdk共存

参考文章:博客园-三维蚂蚁 Linux公社 1.首先需要下载对应平台的Jdk:Oracle 官网 2.使用yum或rpm命令安装Jdk: yum install ./jdk-8u40-linux-x64.rpm 3.配置环境变量 vi /etc/profile 后在倒数第三行处输入下面的内容: export JAVA_HOME=/usr/java/jdk1.8.0_40 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/

在openSUSE 13.1下安装卸载openjdk以及Oracle JDK

平时工作用机是openSUSE 13.1.之前作死换成Oracle JDK以后,intellj的界面变得不能看了,不想调试了于是卸载了Oracle JDK,重新安装了openjdk. [Oracle JDK的卸载] 1. 查询包名称 rpm -qa |grep java 查询到Oracle JDK rpm安装包的名字是 java-xxx-fcs. 2. 卸载 rpm -e java-xxx-fcs 3. 删除相关环境变量 把/etc/environment或者.bashrc中的JAVA_HOME

Centos7安装Oracle JDK

查看Linux是否自带的JDK,如有openJDK,则卸载 1 java -version 1 rpm -qa | grep -E '^open[jre|jdk]|j[re|dk]' 卸载openjdk 1 su root 2 3 yum -y remove java java-1.7.0-openjdk 下载oracle jdk 1 wget --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie;&quo

Ubuntu Linux下安装Oracle JDK

Ubuntu Linux下安装Oracle JDK Dennis Hu 2014-4-22 说明:因为非常多系统不支持使用OpenJDK,因此在ubuntu下会须要安装Oracle JDK.而Oracle JDK的安装貌似没有提供apt方式,因此安装Oracle JDK的方式相对麻烦一些,我常常安装,为了方便别人同一时候方便自己查看,把它记下来. 第一步:区分32位还是64位操作系统 先确定你的ubuntu linux是32位还是64位的,方法非常多,这里介绍一种就可以. $uname -a 第