论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
搜索
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
Email
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
ToB企服应用市场:ToB评测及商务社交产业平台
»
论坛
›
数据库
›
SqlServer
›
OracleJDK与OpenJDK的区别(附带win11下多版本jdk安装) ...
OracleJDK与OpenJDK的区别(附带win11下多版本jdk安装)
冬雨财经
金牌会员
|
2024-12-13 23:34:44
|
显示全部楼层
|
阅读模式
楼主
主题
799
|
帖子
799
|
积分
2397
OracleJDK与OpenJDK的区别(附带win11下多版本jdk安装)
在Java开发领域,OracleJDK与OpenJDK是两个常被提及的名词,它们都是Java开发工具包(JDK)的实现,但各自具有差别的特点和上风。在早期的java开发中(java8以前)默认使用的jdk都是Oracle公司的jdk,由于其时免费,被应用在大多数企业项目开发中,但随着jdk8的202u版本之后Oracle公司开始进行贸易收费,在此后的企业级项目开发中,中小型公司由于规模和成本问题大多数都选择openjdk进行企业级项目替换,为了克制项目开发贸易版权纠纷,java开发后续建议使用openjdk进行替换,两者性能和使用上险些没有任何差异。
1 开源性
OpenJDK
:
完全开源
:OpenJDK由OpenJDK社区开发和维护,基于GPL v2 with Classpath Exception允许证,是一个完全开源的项目。任何人都可以自由使用、修改和分发OpenJDK,没有使用限制。
广泛支持
:由于OpenJDK的开源性质,许多构造和公司都提供了基于OpenJDK源代码的二进制构建版本,如Adoptium(前身为AdoptOpenJDK)、Amazon Corretto、Red Hat OpenJDK等。
OracleJDK
:
贸易产品
:OracleJDK由甲骨文公司(Oracle)开发并维护,是一款贸易产品。尽管其源代码与OpenJDK相似,但OracleJDK在发行版中可能会包罗一些专有组件和工具。
允许限制
:OracleJDK在2019年之后采用了贸易允许证,免费使用仅限于开发、测试和个人用途。对于生产环境的使用,可能必要购买贸易允许证。
2 功能特性
OpenJDK
:
功能
:包罗 Java 开发所需的基本功能,适用于大多数开发场景。
工具
:可能缺少一些 OracleJDK 提供的专有工具和插件,但开源社区提供了许多替换方案。
OracleJDK
:
功能
:早期版本(Java 8 ~ Java 11)包罗一些 OpenJDK 没有的特有功能和工具,如 Java Flight Recorder (JFR) 和 Java Mission Control (JMC)。
工具
:从 Java 11 之后,大部分 Oracle JDK 私有组件都已开源,因此功能性差异险些消失。
3 更新与支持
OpenJDK
:
更新频率
:发布周期较快,通常每 3 个月发布一个新版本。这使得 OpenJDK 可以迅速引入新功能和修复问题,但也意味着这些版本可能包罗更多的未完全测试的变更。
长期支持 (LTS)
:OpenJDK 不提供官方的长期支持 (LTS) 服务。但是,许多公司(如 Red Hat 和 Azul)基于 OpenJDK 提供 LTS 版本,因此两者的稳定性差异不大。
OracleJDK
:
更新频率
:通常每 6 个月发布一个新版本。在发布之前,Oracle JDK 会进行更加严酷的测试和质量保证,以确保其稳定性和可靠性。
长期支持 (LTS)
:Oracle JDK 提供每三年一次的 LTS 版本,并有长期支持服务。这对于企业用户来说,是一个告急的考虑因素,由于长期支持版本可以或许提供更高的稳定性和安全性。
4 实际应用场景
开发环境
:
个人开发者或小型团队
:OpenJDK 是一个抱负的选择,尤其是其完全免费的特性使其在开发和测试环境中广泛使用。
生产环境
:
大型企业
:大型企业可能更倾向于选择 Oracle JDK,尤其是必要 LTS 版本和贸易支持时。然而,许多企业也开始使用基于 OpenJDK 的 LTS 版本,如 AdoptOpenJDK 或 Red Hat 的 OpenJDK,来平衡成本和支持。
5 性能
性能差异
:从性能角度来看,OpenJDK 和 Oracle JDK 的差异非常小。在大多数情况下,运行相同代码的时间差异可以忽略不计。然而,对于特定的高性能需求,仍需进行详细的基准测试。
6 市场使用率
从上述图可以看到,在 JDK 供应商方面,Oracle 的 JDK 保持领先,但占比正逐年下降,该公司在 2022 年占据了 34% 的市场份额,2023 年滑落到 29%,2024 年为 21%,其他供应商例如排名第二的Amazon和Azul、BellSoft等都属于openjdk阵营,openjdk阵营市场使用率上升明显。
注意
:openjdk事实上也有区分,例如原版的openjdk从属于开源社区可以明白为标准版,除此之外还有各大厂商的openjdk版本,在原版的基础上加入了自家的部分优化,例如Amazon、Azul、BellSoft等各厂家的openjdk也是免费使用不必要授权(也有贸易付费版一般不用)。openjdk选择哪家就要看自己的项目需求和公司的情况,例如spring系列开发可以选择BellSoft 的openjdk,为什么选择这个下文会提到。
总结:企业级大型项目标java开发可以使用OracleJDK贸易授权版,可以由Oracle公司提供长期的技术支持服务,安全性和稳定性方面有充足的保障。中小型公司或个人开发者或学习爱好者进行java开发,可以使用OpenJDK开源且免费不必要考虑贸易授权的问题。OracleJDK和OpenJDK无论选择哪个版本,Java的焦点特性和语法都是一致的,关键在于根据自身需求进行合理选择。
7 jdk的多版本安装
以openjdk8、openjdk21示例(其他版本和发行商jdk雷同处理),如果是使用spring家族进行java项目开发官方推荐使用BellSoft Liberica JDK(贝尔实验室)
由于个人和公司使用springboot进行项目开发比较多,以是使用BellSoft Liberica JDK比较合适,详细参考spring官网:https://spring.io/quickstart,可以看到此处spring官方推荐使用BellSoft Liberica JDK(贝尔实验室)
选择jdk8,进入后找到64位下载地点zip压缩包进行下载(jdk21大概jdk17自行下载)
注意
:windows体系下只管不要选择msi安装包进行安装,不方便进行后续的多版本jdk切换!
其他opendjk推荐,azul的openjdk官网下载地点:https://www.azul.com/downloads/#zulu
下载解压后,可以看到是一个jdk文件夹,例云云处我已经下载了多个发行商的jdk
下载了那么多jdk那么怎样才能确定当前使用的是哪个?接下来就是重点了,环境变量设置决定使用哪个jdk版本
环境变量设置
win11下打开资源管理器,进入后找到此电脑鼠标右键点击属性
选择新建两个环境变量,一个JAVA_HOME、一个JAVA_HOME8设置对应之前下载的jdk解压文件目录
点击确定后再次点击新建JAVA_HOME8
选择目录根据自己之前下载解压的jdk路径,选择带有bin文件夹下的上一级目录
点击确定后新添加的环境变量如下
找到path,点击编辑
点击右侧新建,添加%JAVA_HOME%\bin变量
返回环境变量页面,要确定才生效
使用cmd,输入java -version检察java版本是否对应
win+R运行cmd
切换djk版本
按上述步调新建一个JAVA_HOME21(jdk21解压路径)
编辑JAVA_HOME变量
完成后点击确认
重新运行cmd命令框检察是否切换成功(注意:每次切换后必要关闭命令框再打开!)
win+R运行cmd,可以看到对应版本已经切换成功,使用上述同样的方法可以任意切换差别版本的jdk,好了大功告成
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
使用道具
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
冬雨财经
金牌会员
这个人很懒什么都没写!
楼主热帖
信息与网络安全期末复习(完整版) ...
ts保姆级教程,别再说你不会ts了 ...
Elasticsearch学习系列五(零停机索引 ...
Linux安装PHP8 新版笔记
如何通过JDBC访问MySQL数据库?手把手 ...
有趣的特性:CHECK约束
Pod概述
React技术栈 --》 JSX语法书写JS和Reac ...
《ABP Framework 极速开发》教程首发 ...
iOS全埋点解决方案-手势采集 ...
标签云
挺好的
服务器
快速回复
返回顶部
返回列表