来源:

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. MySQL数据库删除数据(有外键约束)

    在MySQL中删除一张表或一条数据的时候,出现有外键约束的问题,于是就去查了下方法: SELECT @@FOREIGN_KEY_CHECKS; 查询当前外键约束是否打开 ; 设置为1的时候外键约束是打 ...

  2. golang基础--Gocurrency并发

    Go并发特点 goroutine只是由官方实现的超级"线程池"而已,每个实例4-5kb的栈内存占用和用于实现机制而大幅减少的创建和销毁开销. 并发不是并行(多CPU): Concu ...

  3. Xilinx FPGA高速串行收发器简介

    1 Overview 与传统的并行实现方法相比,基于串行I/O的设计具有很多优势,包括:器件引脚数较少.降低了板空间要求.印刷电路板(PCB)层数较少.可以轻松实现PCB设计.连接器较小.电磁干扰降低 ...

  4. Bessel函数的零点计算 MATLAB

    由于MATLAB自己没有附带贝塞尔函数零点,因此使用起来很不方便,特别是在绘制仿真场量时. 下面给出0-9阶的贝塞尔函数零点的计算公式,其中理论上计算零点个数N在50以内时较为精确: function ...

  5. 20155230 2016-2017-2《Java程序设计》课程总结

    学号 2016-2017-2<Java程序设计>课程总结 (按顺序)每周作业链接汇总 预备作业01:我所期望的师生关系 预备作业02:成功经验与C语调查 预备作业03:虚拟机安装及Linu ...

  6. 20155329胡佩伦《Java程序设计》第2周学习总结

    学号 20155329 <Java程序设计>第2周学习总结 教材学习内容总结 基本类型 整数(short.int.long) 字节(byte) 浮点数(float/double) 字符(c ...

  7. 20145226夏艺华 网络对抗技术EXP8 WEB基础实践

    20145226夏艺华 网络对抗技术EXP8 WEB基础实践 实验问题回答 1.什么是表单? 表单在网页中主要负责数据采集功能.一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CG ...

  8. 通过unixODBC访问PostgreSQL数据库

    磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页    回到顶级页面:PostgreSQL索引页[作者 高健@博客园  luckyjackgao@g ...

  9. idea里绝对不要直接复制文件到项目中的另一处

    否则那样会将使用被复制文件的那些地方 文件名会变成复制后的那个 而路径是原来的 所以会导致找不到文件 所以绝对不要直接复制文件或者包或者目录到项目中的另一处 需要时应该新建文件 把代码复制进去 这种事 ...

  10. JavaFX 学习笔记——jfoenix类库学习——raised风格按钮创建

    创建按钮 JFXButton jfxb = new JFXButton("hello"); jfxb.getStyleClass().add("button-raised ...