[转帖] 部分收费的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是什么,在开始对比Oracle JDK和OpenJDK之间的差异。
什么是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
- Oracle JDK部分版本收费 ,如果要获得商业Oracle JDK许可证,我们需要直接联系Oracle销售人员。
- OpenJDK是完全免费的,可以按照GPL v2许可证使用。
- Oracle JDK 之前被称为SUN JDK,这是在Oracle收购之前。早些时候,它是Java语言的官方专有实现。收购后,它被命名为Oracle JDK ,Oracle的团队维护着JDK。
- OpenJDK 是Java标准版平台的开源实现,由Oracle和开放Java社区提供。
- OpenJDK 是Java SE 7中Java Standard Edition的官方参考实现。
- OpenJDK 根据许可证GPL v2发布,其中Oracle JDK根据Oracle二进制代码许可协议获得许可。
- 实际上,Oracle JDK的构建过程是从OpenJDK源代码构建的。因此,Oracle JDK和OpenJDK之间没有重大的技术差异。
- 除基本代码外,Oracle JDK还包括Oracle Java插件和Java WebStart的实现。还包括第三方封闭源代码和开源组件。
- OpenJDK Font Renderer 和Oracle JDK Flight Recorder是Oracle JDK和OpenJDK之间显着的主要区别。
- Oracle JDK 的商业组件与可免费下载的Oracle JDK捆绑在一起,并且我们需要使用显式标志来运行它们。
- JRockit 是Oracle的JVM,从Java SE 7开始,HotSpot和JRockit合并为一个JVM。所以现在我们只有合并的HotSpot JVM可用。
- 有些情况下,人们声称他们在运行OpenJDK时遇到了问题,并且在切换到Oracle JDK时得到了解决。考虑到Oracle JDK从OpenJDK获取其来源这一事实很难证明。
- 主要的Linux发行版(如Ubuntu,Fedora和Red Hat Enterprise Linux)提供OpenJDK或其变体作为其默认的Java SE实现。
- OpenJDK 6是一个尝试与Oracle JDK 6兼容的后端。它取自OpenJDK 7 b20并删除了Java 7功能,使其与Java SE 6兼容。
- OpenJDK 8源代码托管在http://hg.openjdk.java.net/jdk8
- OpenJDK 8和OpenJDK 9的目标并没有从OpenJDK 7改变。它们看起来是一样的,即为Java Standard Edition提供开源参考实现。
- 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的更多相关文章
- Oracle JDK与OpenJDK到底有什么不同?
不知道各位developer平时是否有过疑问,Oracle JDK是什么,OpenJDK又是什么? Oracle JDK便是平常我们在windows系统上做开发使用的JDK,又称作SUN JDK.O ...
- 在 Linux 中安装 Oracle JDK 8 以及 JVM 的类加载机制
参考资料 该文中的内容来源于 Oracle 的官方文档 Java SE Tools Reference .Oracle 在 Java 方面的文档是非常完善的.对 Java 8 感兴趣的朋友,可以直接找 ...
- Oracle JDK究竟从哪个版本开始商用收费?
经常被问到Oracle JDK是不是要钱了?收费了?从哪个版本开始商用收费? 木有错,Oracle JDK从2019年4月16号开始商用商用商用收费了!有图有真像: 2019年4月16日当天,Orac ...
- [转帖] Oracle JDK 11 正式发布.. 版本号真快
Java 11 / JDK 11 正式发布! oschina 发布于 2018年09月26日 收藏 19 评论 38 在您的既有IT基础设施上按需构建人工智能更高效>>> 美 ...
- [转帖]SUN/Oracle JDK还是OpenJDK?
你安装的是 https://www.cnblogs.com/shoufeng/p/9719995.html 目录 1 如何查看你安装的JDK版本 1.1 要用到的命令行工具 1.2 查看JDK的版本 ...
- Java 11 将至,不妨了解一下 Oracle JDK 之外的版本
Java 11 计划于本月,即 9 月 25 日发布.与 Java 10 不同,Java 11 不仅提供了长期支持,还将作为 Java 平台的参考实现.新的长期支持版本每三年发布一次,根据后续的发布计 ...
- OpenJDK,Oracle's OpenJDK,Oracle JDK的区别与选择
OpenJDK 单纯的OpenJDK指的是JDK的源码,以GPL协议开源,由企业和社区开发者共同维护和开发. Oracle's OpenJDK Oracle started providing ope ...
- JDK下载地址 Oracle JDK下载 地址 (已解决)
现在JDK开始收费了 Oracle官方对JDK的管理也变得严格了,现在想要在官网下载jdk需要先注册Oracle账号,这倒是小事但是网页反应慢注册填写内容复杂导致很多人不想注册. 不过有的人提供了公开 ...
- 在Ubuntu和Linux Mint上安装Oracle JDK
在Ubuntu和Linux Mint上安装Oracle JDK 使用下面的命令安装,只需一些时间,它就会下载许多的文件,所及你要确保你的网络环境良好: sudo add-apt-repository ...
随机推荐
- Python3 图像识别(一)
Infi-chu: http://www.cnblogs.com/Infi-chu/ 一.环境准备: 1.Python3.x(我是用的是Python3.6.5),这个问题不大,只要3.4以上就OK. ...
- golang基础--Gocurrency并发
Go并发特点 goroutine只是由官方实现的超级"线程池"而已,每个实例4-5kb的栈内存占用和用于实现机制而大幅减少的创建和销毁开销. 并发不是并行(多CPU): Concu ...
- GC错误
如果出现GC错误,可设置客户端 set mapreduce.map.java.opts 设置一下 R的GC错误,在顶端设置这个参数 options(java.parameters = "-X ...
- SAP 直接修改程序的方法
一般项目上都会有这么个神奇的程序,能在测试机和生产机上直接修改程序... REPORT ztest_change. "变量定义 , line() TYPE c, "如果代码中某行大 ...
- 20155231 2016-2017-2 《Java程序设计》第10周学习总结
20155231 2016-2017-2 <Java程序设计>第10周学习总结 教材学习内容总结 学习目标 了解计算机网络基础 掌握Java Socket编程 理解混合密码系统 掌握Jav ...
- 20155232 2016-2017-2《Java程序设计》课程总结
20155232 2016-2017-2<Java程序设计>课程总结 作业汇总 (按顺序)每周作业链接汇总 预备作业1:你期望的师生关系是什么? 预备作业2:技能与经验之谈 预备作业3:初 ...
- 20155233 《Java程序设计》 第十三周课堂练习总结
20155233 <Java程序设计>第十三周课堂练习总结 测试题目 测试1 在IDEA中对P145 MathTool.java 使用JUnit进行单元测试,测试用例不少于三个,要包含正常 ...
- 20155313 2016-2017-2 《Java程序设计》第九周学习总结
20155313 2016-2017-2 <Java程序设计>第九周学习总结 教材学习内容总结 第16章 JDBC(Java DataBase Connectivity)即java数据库连 ...
- 20155316 2016-2017-2 《Java程序设计》第9周学习总结
教材学习内容总结 课堂学习内容 不要上帝类,设计小类 soild设计 开放封闭原则:对扩充开放,对修改封闭 OOD方案 DIP 基耦合 教材学习内容 JDBC架构 交易与隔离层级 RowSet .cl ...
- 20155339 《Java程序设计》实验五网络编程与安全实验报告
20155339 <Java程序设计>实验五网络编程与安全实验报告 实验内容 实验一 1.两人一组结对编程: 参考http://www.cnblogs.com/rocedu/p/67667 ...