iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > JAVA >我应该使用哪个版本的 JDK?
  • 493
分享到

我应该使用哪个版本的 JDK?

javajvm 2023-08-31 09:08:29 493人浏览 八月长安
摘要

本文在写作过程中参考了whichJDK ​ 要构建和运行 Java 应用程序,就需要安装 jdk 环境。 OpenJDK 是 Java SE 规范的开源软件,但它只是源代码。二进制发行版由不同的供应商提供,适用于许多受支持的平台

本文在写作过程中参考了whichJDK

要构建和运行 Java 应用程序,就需要安装 jdk 环境。

OpenJDK 是 Java SE 规范的开源软件,但它只是源代码。二进制发行版由不同的供应商提供,适用于许多受支持的平台,这些发行版在许可证、商业支持、支持的平台和更新频率方面有所不同。

先说结论:

✅ 建议使用 Adoptium Eclipse Temurin 17 并确保您的本地版本与 CI 和生产版本匹配。


首先介绍不同版本的JDK

当前,JDK 计划每六个月(即每年的三月和九月)发布一个具有新版本。第三年的9 月发布一个长期支持 (LTS) 版本,承诺最少更新三年。

JDK版本类型发布日期主要更新推荐
8长期支持03/2014lambda先前发布模型下的最后一个 LTS 版本。oracle 的免费更新已结束,但仍由其他人维护。在接下来的几个月内升级到 11 或 17!
9特征09/2017模块引入了新的发布模型。停产。现在升级到 11 或 17!
10特征03/2018var停产。现在升级到 11 或 17!
11长期支持09/2018新的 Http 客户端广泛使用的 LTS 版本。计划在未来几个月内升级到版本 17。
12特征03/2019停产。现在升级到17!
13特征09/2019停产。现在升级到17!
14特征03/2020新的Switch表达式停产。现在升级到17!
15特征09/2020文本块停产。现在升级到17!
16特征03/2021记录停产。现在升级到17!
17长期支持09/2021密封类当前的 LTS 版本。立即更新至 17.0.3+!
18特征03/2022默认为 UTF-8坚持17!
这是一个没有重要功能的短期版本。-Dfile.encoding=UTF-8您可能想通过在当前的 JDK 中进行设置来检查是否遇到“默认 UTF-8”的任何问题。
19特征09/2022仅预览和孵化器功能坚持17!
如果您之前升级到 18,请立即升级到 19。

您必须决定是要坚持使用最新的 LTS 版本,还是要使用最新的功能版本并每六个月升级一次。两种选择都可以,但如果您不确定,请坚持使用最新的 LTS 版本。

OpenJDK 项目本身在openjdk.java.net上进行管理,您可以在其中找到规范、源代码和邮件列表,但没有可供下载的构建版本。您需要选择一个发行版。


不同的厂商版本:

Oracle OpenJDK 

Oracle 以压缩存档格式为 linuxMacOS 和 windows 提供 OpenJDK 构建。

这些构建只会更新 6 个月。在此短时间后将无法获得更新和安全补丁。这也适用于 LTS 版本!例如,最新的 OpenJDK 11 版本是11.0.2+9而当前的 OpenJDK 版本是11.0.12+7

Oracle Java SE Development Kit (JDK)

Oracle 提供了 OpenJDK 的商业版本,它基于与 OpenJDK 完全相同的来源:Oracle Java SE Development Kit (JDK)。Oracle 为这些构建提供更新定期更新和安全补丁。

Adoptium Eclipse Temurin

Eclipse Adoptium是Eclipse Foundation旗下的顶级项目,为开源软件提供资源和专业的治理模型。Adoptium 工作组由对 Java 技术有战略兴趣的主要公司和组织组成,包括 Red Hat、IBM、Microsoft、Azul 和 iJUG。之前的 AdoptOpenJDK 项目已经迁移到 Eclipse Adoptium。

Adoptium OpenJDK 构建称为Eclipse Temurin,以区分项目和构建。

Eclipse Temurin 构建是高质量的、供应商中立的,并且在宽松许可下经过了 TCK 测试

Adoptium 表示,只要积极维护相应的上游源代码,它将继续为 LTS 版本构建二进制文件。

AdoptOpenJDK

AdoptOpenJDK 项目是 Eclipse Adoptium 的前身,为默认的 HotSpot 和 OpenJ9 虚拟机提供高质量的 OpenJDK 构建。

Azul Zulu

Azul Systems, Inc. 专注于专业的 Java 技术和 JDK 的商业支持。Azul 在业界享有很高的声誉,并参与了各种工作组来发展 Java 平台。

Azul为许多操作系统架构提供名为Azul Zulu的开源 OpenJDK 构建。此外,Azul 还提供满足特殊要求的构建,例如精简的 JRE 和包含 OpenJFX 的构建。

这些构建的缺点是依赖于一家公司,这可能会突然更改其许可或更新政策。

Azul Zing

Azul Zing 是一个商业 JDK,目前作为Azul PlatfORM Prime销售。它需要与 Azul Systems 签订商业合同才能用于生产。

Zing 基于 OpenJDK,并添加了获得专利的“C4 无间断垃圾收集器”、“Falcon JIT 编译器”(以更高的 CPU 使用率和更长的启动和预热时间为代价优化吞吐量)和一些功能加快编译器预热时间(通过分析和存储文件中训练运行的优化来减轻 Falcon JIT 编译器较慢的预热时间)。

Azul Zing 在金融交易应用程序中有一些用例,其中 GC 暂停是一个问题。除此之外,常规 OpenJDK 包含免费的低暂停时间 GC ShenandoahZGC,它们可能是替代方案。

BellSoft Liberica JDK

与Azul类似,BellSoft专注于专业的Java技术和对JDK的商业支持。此外,BellSoft 在业界享有很高的声誉,并参与了各种工作组来发展 Java 平台。

BellSoft为几乎所有操作系统和架构提供名为Liberica JDK的开源 OpenJDK 构建。

流行的 Spring Boot 框架选择 Liberica JDK 作为其buildpack的运行时。

这些构建的缺点是依赖于一家公司,这可能会突然更改其许可或更新政策。

IBM Semeru Runtime

IBM 开发了自己的 Java 虚拟机版本,称为 J9,并作为Eclipse OpenJ9 开源。它是默认 HotSpot Java 虚拟机的替代品,但它从未获得太多人气。

IBM 现在提供基于 Eclipse OpenJ9 Java 虚拟机和一些 OpenJDK 类库的名为Semeru Runtime的构建。OpenJ9内存占用低,使用共享类启动速度快,但与 Hotspot 虚拟机相比吞吐量较低。

Amazon Corretto 

由于 Oracle 改变了对其 OpenJDK 构建的支持和许可政策,主要的云提供商决定建立自己的托管 OpenJDK 构建并提供长期更新。显然,这是为了规避风险,尤其是对甲骨文的诉讼。

2018 年,AWS 发布了Corretto,这是另一个 OpenJDK 构建。

AWS 包括来自较新 OpenJDK 版本的错误修复的反向端口,并声称他们将添加可能尚未集成到 OpenJDK 项目中的补丁。亚马逊已经实施了一个替代加密提供商,该提供商已针对其服务进行了优化。它计划用作 Corretto 中的默认加密实现。

Amazon 为主要开发平台提供发行版,并为其自己的 Amazon Linux 2 提供优化版本。

Microsoft  OpenJDK 

2021 年,微软发布了 OpenJDK 的 Microsoft Build,这是另一个 OpenJDK 构建。

Microsoft 可能会包含来自较新 OpenJDK 版本的错误修复的反向端口,并声称他们将添加可能尚未集成到 OpenJDK 项目中的补丁。

Microsoft 为主要开发平台提供版本。

Alibaba DraGonwell

阿里巴巴提供了一个 OpenJDK 构建,其中包括后台端口和一些额外的功能

Tencent Kona

Tencent Kona 8 基于 OpenJDK 8 开发的,所以叫 Kona-8,这个数字是跟 OpenJDK 的版本走的。Kona 是腾讯开源的、免费的、基于 OpenJDK 的发行版本,并且受腾讯长期支持(LTS)和季度更新,目前由腾讯专业的 JVM 技术团队进行维护和开发;在腾讯内部,Kona 就是默认使用的 JDK,主要应用于腾讯云业务场景及其他 Java 应用场景,并且针对超大规模的大数据机器学习云计算进行了深度优化。

SapMachine

SapMachine 是另一个 OpenJDK Build,由 SAP 维护。

Red Hat OpenJDK

Red Hat 为 LTS 版本提供 OpenJDK 构建。

OJDK

该项目已停止。ojdkbuild 项目的目标是提供 OpenJDK 的 Windows x86_64 二进制文件,这些二进制文件在行为上尽可能接近 Linux OpenJDK 包,例如,通过使用系统库而不是 zlib 或 OpenSSL 的打包版本。它使用了 Centos 中包含的软件包。这些构建的一个用例是在 Windows 机器上开发 Java 软件并将它们部署到生产环境中的 Linux 服务器

GraalVM

GraalVM 是一个完全兼容的 JDK,但与所有其他构建有很大不同。

GraalVM 由 Oracle 开发。它基于 OpenJDK,但包括一个新的高性能编译器和一个新的多语言虚拟机(可以执行用不同编程语言编写的代码)。还可以创建高度优化且启动速度极快的特定于平台的本机可执行文件。

来源地址:https://blog.csdn.net/qq_35760825/article/details/128769250

--结束END--

本文标题: 我应该使用哪个版本的 JDK?

本文链接: https://www.lsjlt.com/news/385047.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 我应该使用哪个版本的 JDK?
    本文在写作过程中参考了whichJDK ​ 要构建和运行 Java 应用程序,就需要安装 JDK 环境。 OpenJDK 是 Java SE 规范的开源软件,但它只是源代码。二进制发行版由不同的供应商提供,适用于许多受支持的平台...
    99+
    2023-08-31
    java jvm
  • Python初学者应该选择哪个版本
    目前,根据数据显示,使用Python2.xd 开发者站63.7%,而使用Python3.x的用户站36.3%,由此可见使用使用Python2.x的用户还是占多数。2014年,Python的创始人宣布将Python2.7支持时间延长到2020...
    99+
    2023-01-31
    初学者 版本 Python
  • JDK对应的Maven版本
    JDK版本Maven版本支持情况JDK 1.3Maven 2.0.11及以下JDK 1.4Maven 2.0.11及以下JDK 1.5Maven 2.0.11及以上JDK 1.6Maven 2.0.11及以上JDK 1.7Maven 3.0...
    99+
    2023-08-17
    java maven 数据库
  • SpringBoot版本与JDK版本的对应关系
    我在IDEA2020.1版本当中创建SpringBoot项目时,可供选择的版本有3.0.2和2.7.8 但是SpringBoot3.0.2版本所需要的JDK版本为17,如果为jdk1.8就会报错。所以如果你的电脑当中安装的JDK版本是1....
    99+
    2023-08-18
    java spring boot intellij-idea
  • numpy版本推荐使用哪个版本
    推荐使用最新版本的NumPy1.21.2。原因是:目前,NumPy的最新稳定版本是1.21.2。通常情况下,推荐使用最新版本的NumPy,因为它包含了最新的功能和性能优化,并且修复了之前版本中的一些问题和错误。本教程操作系统:windows...
    99+
    2023-11-22
    python numpy
  • 我如何知道使用命令行安装了哪个 MongoDB 版本?
    首先打开CMD,然后到达MongoDB的BIN目录。打开CMD提示截图如下。在上面,我们通过按“开始”,然后键入“RUN”和“ENTER”进入“运行”对话框。现在,键入 CMD 并按“确定”按钮获取命令行。截图如下 -到达MongoDB的B...
    99+
    2023-10-22
  • 怎么选择Tomcat对应的JDK版本
    Tomcat下载官网: Apache Tomcat® - Which Version Do I Want JDK下载官网: Java Downloads | Oracle 中国 如果不知道Tomcat的哪个版本应该对应哪个版本的JDK可以打...
    99+
    2023-09-07
    java tomcat servlet
  • Ubuntu20.04 系统安装多个版本的 JDK【多版本jdk切换:sudo update-alternatives --config java】
    前言 目前Java版本更新很快,每半年推出一个版本,因此我们可能需要在自己的电脑上安装不同版本的JDK,以便于我们学习使用,本文主要介绍了在Ubuntu18.04系统上安装JDK(OpenJDK 、 Oracle JDK)以及管理不同版本J...
    99+
    2023-09-14
    ubuntu java jvm
  • 如何更改电脑使用的JDK版本
    如何更改电脑使用的JDK版本 一、安装好JDK后,为了方便在命令行窗口的任意目录启动程序,我们需要配置Path环境变量用于记录程序路径。 Path环境变量的作用: ⚫ Path环境变量是用来配置命令的...
    99+
    2023-08-31
    java 开发语言
  • Android Studio:如何修改JDK版本和获知使用的Java版本
    文章目录 获知使用的Java版本Android Studio查看JDK版本 获知使用的Java版本 JDK的含义: JDK代表Java Development Kit(Java开发工具包...
    99+
    2023-09-13
    android-studio android gradle java jdk
  • 注意JDK与SpringBoot的版本对应关系
    注意SpringBoot版本的选择,如果使用JDK8的话,则选择2.x.x版本。Spring官网介绍:如果选择了3.0.0版本的SpringBoot,JDK最低要17版本不适配会造成Applicati...
    99+
    2023-09-06
    java spring boot spring
  • JDK 10版本的新特性有哪些
    本篇内容介绍了“JDK 10版本的新特性有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!特性总览以下是 Java 10 中的引入的部分新...
    99+
    2023-06-16
  • nodejs2017用哪个版本
    Node.js是一种流行的JavaScript运行时环境,允许开发人员使用JavaScript编写服务器端代码。随着Node.js版本的不断更新,开发人员往往会对哪个版本适合使用产生疑问。在2017年,Node.js版本的选择也是一个热门话...
    99+
    2023-05-18
  • 同一个电脑安装两个jdk版本的方法
    同一个电脑安装两个jdk版本 场景:在学习的过程中,有些项目的idk版本不是很兼容,小白又怕卸载了之前安装的jdk导致以前的做的项目无法运行,因此需要在一台电脑当中安装多个版本的jdk!!! 1 . ...
    99+
    2023-10-22
    java
  • 我应该在网站上使用哪些技术以提升SEO
    要在网站上使用的技术以提升SEO主要包括以下几点:1、网站速度优化:使用CDN、图片压缩等手段提升加载速度;2、移动友好性:使用响应式设计以适配各种设备;3、结构化数据:利用Schema.org或JSON-LD进行标记;4、HTTPS:确保...
    99+
    2023-10-29
    技术 网站 SEO
  • IntelliJ IDEA中配置多个jdk版本的示例
    这篇文章主要介绍IntelliJ IDEA中配置多个jdk版本的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有时候需要看Java源码,但是 Java 1.7 和 Java 1.8的差别的关系,有时候你想查看不同...
    99+
    2023-05-30
    intellij idea jdk
  • 我应该如何在golang中使用类型mapinterface {}
    问题内容 我正在尝试从 api 检索数据。当我从api获取数据时: result, _ := s.getcases() // get cases via api fmt.println...
    99+
    2024-02-06
  • 应该用哪个云服务器
    阿里云是目前国内最知名的云计算服务商之一,拥有丰富的云计算产品和服务,包括云服务器、对象存储、CDN、负载均衡等。 在使用阿里云时,可以选择多种不同的云服务器类型,例如高端云服务器、中端云服务器、经济型云服务器等。其中,高端云服务器具有更...
    99+
    2023-10-28
    应该用 服务器
  • 我应该使用哪些命令来在Python中同步shell索引?
    Python 是一种高级编程语言,广泛用于数据处理、人工智能等领域。在使用 Python 进行开发时,我们常常需要使用 shell 命令来完成一些操作,比如同步 shell 索引。本文将介绍在 Python 中应该使用哪些命令来同步 she...
    99+
    2023-10-27
    同步 shell 索引
  • pip应该在哪个操作环境中使用?
    pip指令应该在哪个环境中执行? 在进行Python开发时,我们经常会使用到pip这个工具来安装、升级和管理Python包。但是,有些初学者可能会困惑于在哪个环境中执行pip指令,以及如何确定当前处于哪个环境中。 首先,我们需要...
    99+
    2024-02-02
    环境管理 pip指令 执行位置 python包
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作