来源:

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 JDKOpenJDK之间的区别。注意目前 OpenJDK 和 Oracle JDK 仅由Oracle创建和维护。在详细介绍之前,让我们回顾一下JDK是什么,在开始对比Oracle JDKOpenJDK之间的差异。

什么是JDK?

Java Development Kit(JDK)包含Java Runtime Environment(JRE)以及用于编译和调试用于开发Java应用程序的Java代码的工具。JRE由库,Java虚拟机(JVM),Java Pluging和Java Web Start组成,用于运行Java应用程序。JRE作为独立版本不包含编译器和调试工具。

Oracle JDK  VS  OpenJDK

  1. Oracle JDK部分版本收费 ,如果要获得商业Oracle JDK许可证,我们需要直接联系Oracle销售人员。
  2. OpenJDK是完全免费的,可以按照GPL v2许可证使用。
  3. Oracle JDK 之前被称为SUN JDK,这是在Oracle收购之前。早些时候,它是Java语言的官方专有实现。收购后,它被命名为Oracle JDK  ,Oracle的团队维护着JDK。
  4. OpenJDK 是Java标准版平台的开源实现,由Oracle和开放Java社区提供。
  5. OpenJDK 是Java SE 7中Java Standard Edition的官方参考实现。
  6. OpenJDK 根据许可证GPL v2发布,其中Oracle JDK根据Oracle二进制代码许可协议获得许可。
  7. 实际上,Oracle JDK的构建过程是从OpenJDK源代码构建的。因此,Oracle JDK和OpenJDK之间没有重大的技术差异。
  8. 除基本代码外,Oracle JDK还包括Oracle Java插件和Java WebStart的实现。还包括第三方封闭源代码和开源组件。
  9. OpenJDK Font Renderer 和Oracle JDK Flight Recorder是Oracle JDK和OpenJDK之间显着的主要区别。
  10. Oracle JDK 的商业组件与可免费下载的Oracle JDK捆绑在一起,并且我们需要使用显式标志来运行它们。
  11. JRockit 是Oracle的JVM,从Java SE 7开始,H​​otSpot和JRockit合并为一个JVM。所以现在我们只有合并的HotSpot JVM可用。
  12. 有些情况下,人们声称他们在运行OpenJDK时遇到了问题,并且在切换到Oracle JDK时得到了解决。考虑到Oracle JDK从OpenJDK获取其来源这一事实很难证明。
  13. 主要的Linux发行版(如Ubuntu,Fedora和Red Hat Enterprise Linux)提供OpenJDK或其变体作为其默认的Java SE实现。
  14. OpenJDK 6是一个尝试与Oracle JDK 6兼容的后端。它取自OpenJDK 7 b20并删除了Java 7功能,使其与Java SE 6兼容。
  15. OpenJDK 8源代码托管在http://hg.openjdk.java.net/jdk8
  16. OpenJDK 8和OpenJDK 9的目标并没有从OpenJDK 7改变。它们看起来是一样的,即为Java Standard Edition提供开源参考实现。
  17. OpenJDK是Ubuntu使用的Java的默认版本,最容易安装,而Oracle Java 7/8是Oracle自己的Java 7/8版本。

发布时间 

OpenJDK

OpenJDK将每6个月发布一次功能,只有在下一个功能发布时才会支持。它本质上是针对开发人员的连续发布流。

Oracle JDK

Oracle JDK的目标更多是针对重视稳定性的企业用户。它基于OpenJDK的一个版本,但随后获得了长期支持(LTS)。Oracle JDK每3年发布一次。

发展历程

OpenJDK

2008年5月,Fedora 9及Ubuntu 8.04于发行版中发布OpenJDK,完整地基于自由及开放源代码的OpenJDK。

2008年6月,IcedTea 6(Fedora 9上的一个包版本的OpenJDK)宣布已通过Technology Compatibility Kit测试,可以称得上是一个完全兼容的Java 6的运行环境。

2008年7月12日,Debian接受了OpenJDK-6的不稳定版本,但目前情况已经稳定。OpenJDK也可以在openSUSE、Red Hat Enterprise Linux及其派生系统,如CentOS中找到。

2008年7月,OpenJDK 7可以运行在Mac OS X和其他的BSD发行版。

2009年7月,Ubuntu 9.04中的二进制版本OpenJDK在Java SE 6 JCK中通过了所有的兼容性测试。

2016年8月22日,Google在Android 7.0 Nougat中,将专利的JDK替换成开源方案的OpenJDK,以彻底解决Java的专利问题。

Oracle JDK

Java EE,Java平台企业版(Java Platform Enterprise Edition),之前称为Java 2 Platform, Enterprise Edition (J2EE),2018年3月更名为Jakarta EE。是Sun公司为企业级应用推出的标准平台。Java平台共分为三个主要版本Java EE、Java SE和Java ME。

Sun公司在1998年发表JDK1.2版本的时候,使用了新名称Java 2 Platform,即“Java2平台”,修改后的JDK称为Java 2 Platform Software Developing Kit,即J2SDK。并分为标准版(Standard Edition,J2SE),企业版(Enterprise Edition,J2EE),微型版(MicroEdition,J2ME)。J2EE便由此诞生。

2005年6月,JavaOne大会召开,SUN公司公开Java SE 6。此时,Java的各种版本已经更名以取消其中的数字“2”:J2EE更名为Java EE, J2SE更名为Java SE,J2ME更名为Java ME。

随着Java技术的发展,J2EE平台得到了迅速的发展,成为Java语言中最活跃的体系之一。现如今,J2EE不仅仅是指一种标准平台,它更多的表达着一种软件架构和设计思想。

 

[转帖] 部分收费的Oracle JDK VS 完全免费的OpenJDK的更多相关文章

  1. Oracle JDK与OpenJDK到底有什么不同?

    ​不知道各位developer平时是否有过疑问,Oracle JDK是什么,OpenJDK又是什么? Oracle JDK便是平常我们在windows系统上做开发使用的JDK,又称作SUN JDK.O ...

  2. 在 Linux 中安装 Oracle JDK 8 以及 JVM 的类加载机制

    参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找 ...

  3. Oracle JDK究竟从哪个版本开始商用收费?

    经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始商用收费? 木有错,Oracle JDK从2019年4月16号开始商用商用商用收费了!有图有真像: 2019年4月16日当天,Orac ...

  4. [转帖] Oracle JDK 11 正式发布.. 版本号真快

    Java 11 / JDK 11 正式发布! oschina 发布于 2018年09月26日 收藏 19 评论 38   在您的既有IT基础设施上按需构建人工智能更高效>>>   美 ...

  5. [转帖]SUN/Oracle JDK还是OpenJDK?

    你安装的是 https://www.cnblogs.com/shoufeng/p/9719995.html 目录 1 如何查看你安装的JDK版本 1.1 要用到的命令行工具 1.2 查看JDK的版本 ...

  6. Java 11 将至,不妨了解一下 Oracle JDK 之外的版本

    Java 11 计划于本月,即 9 月 25 日发布.与 Java 10 不同,Java 11 不仅提供了长期支持,还将作为 Java 平台的参考实现.新的长期支持版本每三年发布一次,根据后续的发布计 ...

  7. OpenJDK,Oracle's OpenJDK,Oracle JDK的区别与选择

    OpenJDK 单纯的OpenJDK指的是JDK的源码,以GPL协议开源,由企业和社区开发者共同维护和开发. Oracle's OpenJDK Oracle started providing ope ...

  8. JDK下载地址 Oracle JDK下载 地址 (已解决)

    现在JDK开始收费了 Oracle官方对JDK的管理也变得严格了,现在想要在官网下载jdk需要先注册Oracle账号,这倒是小事但是网页反应慢注册填写内容复杂导致很多人不想注册. 不过有的人提供了公开 ...

  9. 在Ubuntu和Linux Mint上安装Oracle JDK

    在Ubuntu和Linux Mint上安装Oracle JDK 使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好: sudo add-apt-repository ...

随机推荐

  1. 用函数指针将字符串 ”hello world“ 输出为 "world hello”

    /************************************************************************* > File Name: 指针数组2.c & ...

  2. 双端队列 ADT接口 链表实现

    Deque ADT接口 DEQUEUE.h: #include <stdlib.h> #include "Item.h" typedef struct DEQUEUEn ...

  3. Java 访问控制规则简介

    1. 概述 老生常谈的内容 巩固一下自己 要摇摇欲坠的基础 内容确实不怎么高级... 2. 常规解释 1. 概述 简单说下什么情况 在单纯考虑 public, protected, 以及 privat ...

  4. xshell sftp可用命令,sftp: cannot open d: to write![解决]

    sftp可用命令: cd 路径 更改远程目录到“路径” lcd 路径 更改本地目录到“路径” chgrp group path 将文件“path”的组更改为“group” chmod mode pat ...

  5. JQuery补充——获取与设置表单值

    //写jQuery代码时注意前面一定要记得加$(function(){});,在文档加载完成后进行代码的编写 使用jQuery的表单对象属性来选择被选中的项::checked,详见文档选择器部分 根据 ...

  6. 20155337 2016-2017-2 《Java程序设计》第三周学习总结

    20155337 2016-2017-2 <Java程序设计>第死周学习总结 教材学习内容总结 第六章 •何谓继承: 面向对象中,为避免多个类间重复定义共同行为.(简单说就是将相同的程序代 ...

  7. banwagon vps装wordpress

    http://www.banwagong.com/213.html http://www.banwagong.com/225.html http://www.banwagong.com/230.htm ...

  8. HBase核心功能模块--读书笔记

    客户端Client 客户端 Client 是整个 HBase 系统的入口.使用者直接通过客户端操作 HBase.客户端 使用 HBase 的 RPC 机制与 HMaster 和 RegionServe ...

  9. Objective-C 方法交换实践(一) - 基础知识

    一.Objective-C 中的基本类型 首先看下 Objective-C 的对象模型,每个 Objective-C 对象都是一个指向 Class 的指针.Class 的结构如下: struct ob ...

  10. c# 实体类怎么给LIST赋值,table转LIST

    /// <summary> /// 缓存客服集合信息 /// </summary> public class model { /// <summary> /// 客 ...