JDK与OpenJDK有什么区别?
安装,部署软件的时候,经常会碰到JDK还有OpenJDK,那JDK与OpenJDK这2个有什么区别?JDK和OpenJDK怎么选?
简单说JDK是Oracle拥有的,很多版本需要购买才能商业使用;OpenJDK是JDK的开源版本,可以免费商用。 OpenJDK相比JDK功能会有些缺失。
二、什么是JDK
JDK,Java Development Kit是Sun公司针对Java开发人员发布的免费软件开发工具包(SDK,Software development kit)。
JDK就是java开发所需的工具包,包含了java运行环境JRE,java源码编译器javac,java程序调试分析工具(jconsole,jvisualvm),java程序编写所需的文档和demo例子程序。如果只是要运行java程序,安装JRE就可以了,如果你要编写java程序就需要安装JDK。自从Java推出以来,JDK已经成为使用最广泛的Java SDK。
Oracle公司在2009年收购SUN公司后,也接管了Java,所以现在说JDK有时会说Oracle JDK。Oracle JDK 由 Oracle 维护和开发。它符合 OpenJDK 规范,但不是开源代码。Oracle JDK 在 JVM 响应能力和生产力方面要好得多。由于其对企业客户的重要性,它更注重稳定性。
Oracle JDK 完全由 Oracle Corporation 维护和开发。
三、什么是OpenJDK
OpenJDK是Java的开发环境(JDK)的开源版本,完全自由,开放源码。
由于JDK的一部分特性采用商业许可证而非开源。因此Sun公司在去掉了Java少量闭源特性后,于2009年发布了基于GPL的开源JDK,使JDK成为自由软件,也就是后面的OpenJDK。
OpenJDK是开放源代码,由Oracle维护和开发,但允许Java社区和其他公司共同参与开发,如Red Hat、Azul Systems、IBM、Apple Inc等。
四、JDK与OpenJDK区别:
4.1 授权协议的不同
OpenJDK采用GPL V2协议放出,而Oracle JDK则采用JRL协议放出。
两者协议虽然都是开放源代码的,但是GPL V2允许在商业上使用,而JRL只允许个人研究使用,商业使用需要购买。
4.2 OpenJDK源代码不完整
JDK因为一部分特性采用商业许可证而非开源,因此无法开放给OpenJDK使用,其中最主要的就是JMX可选元件SNMP部份。OpenJDK将这些不能开放的特性(源代码)抽离出来,作成plug。你可以在OpenJDK编译时选择要不要使用这些plug。
4.3 部分源代码用开源代码替换
由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码。
4.4 OpenJDK只包含最精简的JDK
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP...,并且可以分离的软件包也都是尽量的分离。但是这大多数都是自由软件,你可以自己下载加入。
4.5 不能使用Java商标
在安装JDK的机器上,输入“java -version”显示的是java。
在安装OpenJDK的机器上,输入“java -version”显示的是OpenJDK。如果是使用Icedtea补丁的OpenJDK,显示的也是java。
4.6 支持维护
JDK每三年发布一次,而 OpenJDK 每六个月发布一次。
JDK为其发行版(部分版本)提供了长期的支持。而OpenJDK只支持维护某个版本到下一个版本发布。
五、JDK和OpenJDK怎么选
JDK 比 OpenJDK 更稳定。OpenJDK和JDK的代码几乎相同,但JDK有更多的类和一些错误修复。如开发企业/商业软件,一般建议选择JDK,因为它经过了彻底的测试和稳定。某些情况下,有些人提到在使用OpenJDK 可能会遇到了许多应用程序崩溃的问题,但只需切换到JDK就可以解决问题。OpenJDK的特点是更新频繁,实现快速迭代和高效试错,为JDK LTS版本打下基础。
JDK的特点是单版本长期支持,提供稳定可用的商业版本,商用收费,学习研究免费。如需在开源基础上开发及问题优化维护或不那么注重稳定性,则可以选择OpenJDK。
附录:
附录1、JDK下载
https://66office.com/goods.php?id=256
附录2、Java历史版本,JDK历史版本
————————————————
声明:本文由 66办公「66office.com」原创,欢迎转载,转载请保留链接。