当前位置: 首页 > news >正文

Java——OpenJDK和JDK的区别

目录

一、问题情境

二、OpenJDK的来历

三、两者的区别

1、授权协议的不同

2、OpenJDK源代码不完整,只包含最精简的JDK

3、openjdk不能使用Java商标

4、OpenJDK不包含Deployment(部署)功能

5、发布周期 

6、整体性能

7、运行环境

四、区别汇总

五、总结 


一、问题情境

在游玩java版本MC的时候,可以下载OpenJDK或JDK,来运行游戏。

然而,现在JDK需要在官网注册登陆后,才可以下载,因此OpenJDK更容易下载

因此,我在想这俩有什么区别呢?


二、OpenJDK

OpenJDK是jdk的开放原始码版本,以GPL协议的形式放出。

在JDK7的时候,openjdk已经成为jdk7的主干开发,sun jdk7是在openjdk7的基础上发布的,其大部分原始码都相同,只有少部分原始码被替换掉。使用JRL(JavaResearch License,Java研究授权协议)发布。

至于openjdk6则更是有其复杂的一面,首先是openjdk6是jdk7的一个分支,并且尽量去除Java SE7的新特性,使其尽量的符合Java6的标准。


三、两者的区别

1、授权协议的不同

openjdk采用GPL V2协议放出,而JDK则采用JRL放出。

两者协议虽然都是开放源代码的,

但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用

2、OpenJDK源代码不完整,只包含最精简的JDK

在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。

OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。

因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。

并且,openjdk部分源代码需要用开源代码替换,同时,由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。

3、openjdk不能使用Java商标

在安装openjdk的机器上,输入“java -version”显示的是openjdk,而不是jdk

总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。

4、OpenJDK不包含Deployment(部署)功能

部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的

5、发布周期 

Open Java 每六个月发布一次,而 Oracle java 每三年发布一次。用户能够获得 oracle 对其版本的长期支持。而Open JDK 为任何版本提供更改,直到下一个版本发布。

6、整体性能

这两个 Java 平台没有真正的技术差异。

因为 Oracle JDK 的构建过程是基于 OpenJDK 的。

就平台的整体性能而言,Oracle Java 在响应能力和 JVM 性能方面相对优于 OpenJDK。

7、运行环境

JDK是Java语言的软件开发工具包,主要用于移动设备、嵌入式设备上的java应用程序。JDK是整个java开发的核心,包含了JAVA的运行环境(JVM+Java系统类库)和JAVA工具。

OpenJDK是一款只能运行在i386和AMD-64机器上的软件。


四、区别汇总

区别openjdkJDK
授权协议GPL V2协议JRL
源代码是否完整只包含最精简的JDK
整体性能响应能力上略弱

五、总结 

在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的openjdk。

因此,网上有许多安装教程中,都说要先删除系统自带的OpenJDK。

资料来源:OpenJDK和JDK区别-pudn.com、openjdk与jdk区别_百度知道

 

相关文章:

  • Windows实时运动控制软核(六):LOCAL高速接口测试之Matlab
  • 下一代编解码技术Ali266在视频超高清领域的应用展望
  • 【K8S之调度器流程和扩展】如何给 scheduler 添加扩展插件、关闭默认插件、创建多个 scheduler?
  • kob配置git环境与项目创建
  • moment.js根据时间戳计算与当前时间相差多少天
  • VS2017编译gsf/surf/mbio —E0020 未定义标识符 “F_OK“
  • 【完美解决】Github action报错remote: Write access to repository not granted.
  • vulnhub之PRIME (2021): 2
  • 【C++修炼之路】C++入门(下)
  • 【Android Studio】【Flutter】Android Studio下Flutter环境搭建记录
  • Vue3 中使用组合式API替换mixins,达到代码复用并解决隐患
  • 规则引擎-drools-3.3-drl文件构成-rule部分-条件Condition
  • 企业怎么能上百度百科词条,创建百科方法
  • 3-1多线程-线程池
  • Linux-远程管理命令
  • mysql:数据库调优策略,sql调优
  • HighCharts结构及详细配置(中文对比)
  • 面试之 Python 框架 Flask、Django、DRF
  • 2023年FOF/MOM基金研究报告
  • 在CentOS-6.9配置apache服务(1)---基于个人主页的身份验证
  • 电加热油锅炉工作原理_电加热导油
  • 大型电蒸汽锅炉_工业电阻炉
  • 燃气蒸汽锅炉的分类_大连生物质蒸汽锅炉
  • 天津市维修锅炉_锅炉汽化处理方法
  • 蒸汽汽锅炉厂家_延安锅炉厂家
  • 山西热水锅炉厂家_酒店热水 锅炉
  • 蒸汽锅炉生产厂家_燃油蒸汽发生器
  • 燃煤锅炉烧热水_张家口 淘汰取缔燃煤锅炉
  • 生物质锅炉_炉
  • 锅炉天然气_天燃气热风炉