来源:

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不仅仅是指一种标准平台,它更多的表达着一种软件架构和设计思想。

转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9867970.html

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

  1. suse卸载自带java_在openSUSE 13.1下安装卸载openjdk以及Oracle JDK

    平时工作用机是openSUSE 13.1.之前作死换成Oracle JDK以后,intellj的界面变得不能看了,不想调试了于是卸载了Oracle JDK,重新安装了openjdk. [Oracle ...

  2. JVM,JDK,JRE和OpenJDK有什么区别?

    本文翻译自:What is the difference between JVM, JDK, JRE & OpenJDK? What is the difference between JVM ...

  3. OpenJDK能替代Oracle JDK 吗

    Oracle 要对JAVA收费了,许多人说可以用 OpenJDK替代,但这会对应用有影响吗? OpenJDK 项目主要基于 Sun 捐赠的 HotSpot 源代码.此外,OpenJDK 被选为 Jav ...

  4. Java 11 将至,除了 Oracle JDK 还有这些版本!

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

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

    开发四年只会写业务代码,分布式高并发都不会还做程序员?   Java 11 计划于本月,即 9 月 25 日发布.与 Java 10 不同,Java 11 不仅提供了长期支持,还将作为 Java 平台 ...

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

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

  7. java/javaw/javaws与openjdk oracle jdk

    昨天服务器坏了,就用IPMI一个服务管理的一个BS架构的东西尝试去登录后台.然而KVM工作,点开后只看到下载了一个kvm.lp的文件. 通过查资料,.lp跟.jnlp应该是一回事,其实是一个文本文件. ...

  8. Oracle JDK高版本商用付费分析

    结论:JDK 8分情况 8u211和之后的版本商用需付费,JDK 9/10 免费 JDK 11及以上所有版本商用需付费 免费建议:JDK 8 使用8u202 版本,JDK8以上版本使用OpenJDK或 ...

  9. AdoptOpenJDK代替Oracle JDK使用说明

    众所周知Oracle JDK商业使用开始收费了,然而Oracle在http://jdk.java.net/放出的官方版OpenJDK有下面几点问题: 1.没有32位 2.没有安装程序(初学者会遇到困难 ...

最新文章

  1. 【CV】Pytorch一小时教程添加损失函数图像可视化训练过程
  2. Java字符串String比较不要用==原因
  3. WCF 客户端代理生成 通过SvcUtil.exe
  4. matlab语言中的assert断言函数
  5. 解决magento保存产品时耗时很长的问题
  6. jenkins自动部署--定时轮询svn代码更新并自动发布至测试环境
  7. Kafka源码分析-序列3 -Producer -Java NIO(Reactor VS Peactor)
  8. WIN32 串口发送数据
  9. 基于JAVA+SpringMVC+Mybatis+MYSQL的外卖送餐网
  10. 5.docker 命令
  11. 整体二分初识--POJ2104:K-th Number
  12. hdu 4005 The war
  13. php tcpdf中文手册,TCPDF:用于生成PDF文档的开源PHP类
  14. [高效Mac] 多显示器快速切换鼠标焦点和移动窗口
  15. Android——ViewHolder的作用与用法
  16. 实现原理 扫描枪_条码扫描枪的原理
  17. 精华 | 网络故障排除命令汇总【网工必须收藏】
  18. 学习blus老师js(1)--基础
  19. 多版本谷歌chrome浏览器并存(谷歌浏览器从C盘移植)
  20. 百度虚拟服务器上传,百度云虚拟主机好用吗?事实告诉你很坑

热门文章

  1. LSM6DS3(六轴传感器)STM32驱动及6D功能实现
  2. java实现第四届蓝桥杯公式求值
  3. 软件测试之——性能测试(超级详细)这些你都知道吗?
  4. Fluent 湍流非预混燃烧模拟
  5. 计算机qwerty键盘,QWERTY键盘输入
  6. Visual C++黑白棋游戏项目开发一:需求分析、系统架构设计(附源码和资源 可用于大作业)
  7. 通过游戏,ACCU和乌克兰进行测试
  8. 利用公网IP访问部署在阿里云服务器的spring boot项目(一)
  9. CSS几种常见的页面布局方式介绍
  10. 动手深度学习v2 汇聚层pooling 课后习题