详情介绍
Java 17 LTS 是 Java SE 平台的最新长期支持版本。 根据 Oracle 免费条款和条件许可,JDK 17 二进制文件可在生产中免费使用,并可免费重新分发。JDK 17 将根据这些条款接收更新,至少在 2024 年 9 月之前。Java 17 的下一个长期支持版本现已推出。Oracle 继续以六个月的定期节奏在 Java 平台上进行创新,使 Java 保持活力并与世界各地的企业和开发人员息息相关。
Java SE Development Kit(JDK) 17 for Windows :点击下载
Java 是世界上最多产的编程语言和开发平台。JDK 是使用 Java 编程语言构建应用程序和组件的开发环境。JDK 包括用于开发和测试用 Java 编程语言编写并在 Java 平台上运行的程序的工具。本次提供的是Java SE Development Kit(JDK) 17 for Linux官方版本下载,欢迎需要此款工具的朋友前来下载使用。
JDK17新特性详解
预览版:该功能在当前版本可以使用,如果效果不是很好的话,可能以后的其他版本就会删去该功能。
最终版:该功能在之前版本效果很好,之后的每个版本中都会存在该功能。
1、switch新增模式(预览版)
使用 switch 表达式和语句的模式匹配以及对模式语言的扩展来增强 Java 编程语言。将模式匹配扩展到 switch 允许针对多个模式测试表达式,每个模式都有特定的操作,以便可以简洁安全地表达复杂的面向数据的查询。基于JDK16 instanceof模式匹配(最终版)优化升级switch使用方法,先回忆下JDK16模式匹配(最终版)
if (obj instanceof String s) {
// 直接使用 s拼接字符串
s += "heihei";
} else if (obj instanceof Integer i){
// 直接使用i进行整型逻辑运算
i += 1;
}
switch可直接用instanceof模式匹配选择(需要提前考虑null判断)
Object o;
switch (o) {
case null -> System.out.println("首先判断对象是否为空,走空指针逻辑等后续逻辑");
case String s -> System.out.println("判断是否为字符串,s:" + s);
case record p -> System.out.println("判断是否为Record类型: " + p.toString());
case int[] arr -> System.out.println("判断是否为数组,展示int数组的长度" + ia.length);
case Integer i -> System.out.println("判断是否为Intger对象,i:" + i);
case Student s -> System.out.println("判断是否为具体学生对象,student:" + s.toString());
case UserCommonService -> System.out.println("判断是否为普通用户实现类,然后走普通用户逻辑");
case UserVipService -> System.out.println("判断是否为vip用户实现类,然后走vip用户逻辑");
default -> System.out.println("Something else");
}
2、Realed class密封类(最终版)
密封类和接口限制哪些其他类或接口可以扩展或实现它们。
public sealed interface Shape{
final class Planet implements Shape {}
final class Star implements Shape {}
final class Comet implements Shape {}
}
public abstract sealed class Test{
final class A extends Test {}
final class B extends Test {}
final class C extends Test {}
}
3、随机数增强
为伪随机数生成器 (PRNG) 提供新的接口类型和实现,包括可跳转的 PRNG 和额外的一类可拆分 PRNG 算法 (LXM)。
4、浮点运算更加严格
简化数字敏感库开发,包括java.lang.Math和java.lang.StrictMath(对开发无实际意义)
5、Parallel GC 默认启用
Parallel GC 默认启用自适应并行处理,并行GC确定java.lang.ref.Reference在垃圾收集期间用于处理实例的最佳线程数。
默认-XX:ParallelRedProcEnabled: true。在有多个线程可用于垃圾收集的机器上,明显改善了垃圾收集暂停的阶段,如果遇到垃圾收集暂停增加的情况,可以通过-XX:ParallelRedProcEnabled在命令行上指定到原始行为
6、增强TreeMap
增强JDK-8176894(TreeMap 没有对 putIfAbsent()、computeIfAbsent()、computeIfPresent()、compute() 方法的专门实现。默认实现经常导致两次树遍历,这会损害性能)
7、弃用Socket实现工厂机制
弃用并最终删除用于为java.net 包中的套接字类型静态配置系统范围工厂 的 API 点
具体如下:
* 方法:
static void ServerSocket.setSocketFactory (SocketImplFactory fac)
static void Socket.setSocketImplFactory (SocketImplFactory fac)
static void DatagramSocket.setDatagramSocketImplFactory (DatagramSocketImplFactory fac)
* Types
java. net SocketImplFactory
java.net DatagramSocketImplFactory
也可以弃用java.net SocketImplFactory 和 DatagramSocketImplFactory 类型 ,因为它们的唯一用途与上述工厂有关 设置方法。
8、统一日志支持异步日志刷新
为了避免在使用统一日志的线程中出现不希望的延迟,用户现在可以请求统一日志系统以异步模式运行。通过传递命令行选项来完成的-Xlog:async。在异步日志模式下,日志站点将所有日志消息排入缓冲区。独立线程负责将它们刷新到相应的输出。中间缓冲区是有界的。缓冲区耗尽时,将丢弃排队消息。可以使用命令行选项控制中间缓冲区的大小-XX:AsyncLogBufferSize=<bytes>。
9、新增 java.time.InstantSource
java.time.InstantSource引入了一个新界面。这个接口是一个抽象java.time.Clock,只关注当前时刻,不涉及时区。
10、javadoc工具
新的“新 API”页面和改进的“弃用”页面,JavaDoc 现在可以生成一个页面,总结最近 API 的变化。要包含的最新版本列表是使用--since命令行选项指定的。这些值用于查找@since要包含在新页面上的具有匹配标签的声明。该--since-label命令行选项提供了“新API”页面的标题文本使用。
在 Linux 平台上安装 JDK 的一般注意事项
根访问权限
本主题介绍有关在 Linux 平台上安装 JDK 17 的一般信息。
安装 JDK 会自动创建一个名为. jdk–17.interim.update.patch
笔记:如果您将 JDK 安装在特定位置,例如/usr/jdk,则您必须使用 root 凭据登录以获得必要的权限。如果您没有 root 访问权限,则在您的主目录或您具有写入权限的子目录中安装 JDK。
覆盖文件
如果将软件安装在包含名为 的子目录的目录中,则新软件会覆盖该目录中的同名文件。如果旧目录包含您要保留的文件,请确保重命名旧目录。 jdk–17.interim.update.patch
系统偏好设置
默认情况下,安装脚本会配置系统,以便在适用的情况下在 JDK 安装目录中创建系统首选项的后备存储。如果 JDK 安装在网络安装驱动器上,则可以导出系统首选项以与其他机器上的 Java 运行时环境共享。
Linux平台的JDK安装说明符号
JDK 安装说明包含代表功能、临时和更新版本信息的版本符号。
例如,如果您要安装 JDK 17 Interim 0、Update 0 和 Patch 0,则以下字符串表示捆绑包的名称:
Linux x64 系统: jdk-17.interim.update.patch_linux-x64_bin.tar.gz
该字符串变为:
jdk-17_linux-x64_bin.tar.gz
Linux aarch64(64位ARM)系统: jdk-17.interim.update.patch_linux-aarch64_bin.tar.gz
该字符串变为:
jdk-17_linux-aarch64_bin.tar.gz
笔记:如果一个组件的后缀是 0,它将被排除在外。
更多详细安装注意事项,请参考官方文档:https://docs.oracle.com/en/java/javase/17/install/installation-jdk-linux-platforms.html
JDK 17 发行说明
更多详情:https://www.oracle.com/java/technologies/javase/17-relnote-issues.html
新功能
本节介绍了 Java SE 17 和 JDK 17 中的一些增强功能。在某些情况下,这些描述提供了指向有关问题或更改的其他详细信息的链接。此处描述的 API 随 Oracle JDK 一起提供。它包括 Java SE 17 平台的完整实现和额外的 Java API,以支持开发、调试和监控 Java 应用程序。关于 Java SE 17 和 JDK 17 中重要增强和新特性的另一个信息来源是Java SE 17 (JSR 392)平台规范,其中记录了 Java SE 16 和 Java SE 17 之间对规范所做的更改。该文档包括对这些新特性和增强功能的描述,这些新特性和增强功能也是对规范的更改。这些描述还确定了您在迁移到 JDK 17 时可能遇到的潜在兼容性问题。
删除的功能和选项
本节介绍在 Java SE 17 和 JDK 17 中删除的 API、功能和选项。此处描述的 API 是随 Oracle JDK 提供的 API。它包括 Java SE 17 平台的完整实现和额外的 Java API,以支持开发、调试和监控 Java 应用程序。Java SE 17 和 JDK 17 中重要增强和新特性的另一个信息来源是 Java SE 17 (JSR 392)平台规范,它记录了 Java SE 16 和 Java SE 17 之间对规范所做的更改。该文档包括标识此处未描述的已删除 API 和功能。下面的描述可能还会指出您在迁移到 JDK 17 时可能遇到的潜在兼容性问题。
已弃用的功能和选项
有关 Java SE 17 和 JDK 17 中弃用的 API、特性和选项的其他信息来源包括:
将 已过时的API页面识别所有已弃用的API包括在Java SE 17弃用。
该爪哇SE 17(JSR 392)规范文档改变到Java SE 16和Java SE 17,其包括已弃用的API的识别和特征不再赘述之间所订的规格。
JEP 277:Enhanced Deprecation提供了弃用政策的详细说明。您应该了解本文档中描述的更新政策。
更新日志
Java™ SE Development Kit 17,更新 17.0.18(JDK 17.0.18)
2026年1月20日
本次更新的完整版本字符串为 17.0.18+8(“+” 表示“构建”)。版本号为 17.0.18。该 JDK 符合 Java SE 规范 17.1 版本(JSR 392 MR 1 2024-07-02)。
安全基线
JDK 17.0.18 发布时 Java 运行时的安全基线如下表所示:
Java 家族版本 安全基线(完整版本字符串)
17 17.0.18+8
11 11.0.30+7
8 1.8.0_481-b10
保持JDK的更新
Oracle 建议每次关键补丁更新时都要更新 JDK。 为了判断某个版本是否为最新,安全基线页面可以 用于确定每个发行家族的最新版本。
关键补丁更新包含安全漏洞修复,通常提前一年发布关键补丁更新、安全警报和公告。不建议在下一次关键补丁更新后使用该 JDK(版本17.0.18)。预计为2026年4月21日。
Java管理服务面向所有用户,可以帮助你在系统中发现易受攻击的Java版本。Java SE 订阅用户和运行在 Oracle Cloud 中的客户可以使用 Java 管理服务更新 Java 运行时,并进行进一步的安全审查,比如识别 Java 程序中使用的潜在易受攻击的第三方库。现有的 Java 管理服务用户,点击这里登录您的仪表盘。Java 管理服务文档提供了一份对所有人开放的功能列表,以及仅对客户开放的功能。了解更多关于使用 Java 管理服务来监控和保护您的 Java 安装的信息。
新功能
core-libs/java.rmi
➜ 默认启用端点识别,适用于TLS上的RMI连接 (JDK-8341496(非公开))
如果使用该类,RMI会使用TLS连接。这些连接现在默认启用了TLS端点识别。这可能导致一些之前正常工作的TLS连接出现故障。如果发生这种情况,确保服务器提供的证书具有与服务器主机名相匹配的主体替代名称。或者,客户端可以通过将系统属性设置为 来禁用 RMI TLS 连接的端点识别。javax.rmi.ssl.SslRMIClientSocketFactoryjdk.rmi.ssl.client.enableEndpointIdentificationfalse
其他注释
security-libs/javax.net.ssl
➜ 禁用了TLS 1.2和DTLS 1.2中的SHA-1握手签名 (JDK-8340321))
在TLS 1.2和DTLS 1.2握手签名中,SHA-1算法已被默认禁用,方法是在配置文件中添加安全属性。RFC 9155 弃用了 TLS 1.2 和 DTLS 1.2 数字签名中的 SHA-1。用户可自行承担风险,通过移除安全属性,重新启用 TLS 1.2 和 DTLS 1.2 握手签名中的 SHA-1 算法。"rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature"jdk.tls.disabledAlgorithmsjava.security"rsa_pkcs1_sha1 usage HandshakeSignature, ecdsa_sha1 usage HandshakeSignature, dsa_sha1 usage HandshakeSignature"jdk.tls.disabledAlgorithms
安装/安装
➜ Windows 安装程序返回完整版本目录及交汇( JDK-8310932(非公开))
对于 JDK11+ LTS 系列,JDK 默认安装到特定版本的安装目录中。11+ 的安装目录在版本特定字符串前会有一个 - ,以保持与各家族过去 11+ 惯例的一致性。在“最新”目录中也会创建一个连接,Windows中也称为符号链接。它会指向该家族的最新版本。以下是安装和交汇点11+家族的详细示例:
版本 安装目录 交汇位置
jdk25.0.2 C:\Program Files\Java\jdk-25.0.2 C:\Program Files\Java\latest\jdk-25
JDK17.0.18 C:\Program Files\Java\jdk-17.0.18 C:\Program Files\Java\latest\jdk-17
jdk11.0.30 C:\Program Files\Java\jdk-11.0.30 C:\Program Files\Java\latest\jdk-11
每个交汇点始终指向匹配LTS家族中最新的JDK。当匹配LTS家族的最后一个JDK卸载时,每个家族的连接将被移除。
安装/安装
➜ 让jcmd命令在无头JDK RPM中可用 (JDK-8359443(非公开))
jcmd命令将以无头JDK RPM代替头头JDK RPM使用。
它将被加入替代组,而非替代方案组。javajavac
security-libs/javax.net.ssl
➜ 废TLS_RSA密码套件 (JDK-8245545)
TLS_RSA密码套件默认被禁用,方法是在java.security配置文件中的jdk.tls.disabledAlgorithms安全属性中添加“TLS_RSA_”。TLS_RSA密码套件不维护前向保密性,且不常用。一些TLS_RSA密码套件已经被禁用,因为它们使用了DES、3DES、RC4或NULL,这些都是被禁用的。此举会禁用所有剩余TLS_RSA密码套件。任何尝试使用以“TLS_RSA_”开头的密码套件都会因SSLHandshakeException而失败。用户可自行承担风险,通过从安全属性中移除“TLS_RSA_”来重新启用这些密码套件。以下先前启用的密码套件现已禁用:jdk.tls.disabledAlgorithms
TLS_RSA_WITH_AES_256_GCM_SHA384
TLS_RSA_WITH_AES_128_GCM_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA256
TLS_RSA_WITH_AES_128_CBC_SHA256
TLS_RSA_WITH_AES_256_CBC_SHA
TLS_RSA_WITH_AES_128_CBC_SHA
core-libs/java.util:i18n
➜ 基于Debian的Linux(JDK-8345213)中默认时区检测的变 更)
在基于 Debian 的 Linux 发行版如 Ubuntu 上,该文件曾用于确定 JDK 的默认时区()。根据Debian的维基,现在是系统默认时区的主要来源,因此变得多余。因此,JDK的默认时区检测逻辑已更新为使用。如果和因任何原因不一致,JDK的默认时区现仅基于档案确定。/etc/timezoneTimeZone.getDefault()/etc/localtime/etc/timezone/etc/localtime/etc/timezone/etc/localtime/etc/timezone/etc/localtime
security-libs/java.security
➜ 证书权威信息访问扩展 (JDK-8368032(非公开))中URI的过滤规则
引入了一个新的系统和安全属性,, ,该属性允许用户定义一个或多个过滤规则,应用于X.509证书上权威信息访问扩展获得的URI。这些过滤规则专门应用于CA发行机构的访问方式。任何CA发行者在X.509证书中的URI只有在系统属性被启用且过滤器允许该URI时才会被跟踪。com.sun.security.allowedAIALocationscom.sun.security.enableAIAcaIssuers
为了设置规则,用户必须以同名设置安全属性或系统属性。如果系统属性有值,它会覆盖安全属性。默认情况下,该属性为空,这会执行一个拒绝所有规则集。com.sun.security.allowedAIALocations
对于任一性质,取值由一组空间分离规则组成,这些规则以URI的形式出现,具有以下约束条件:
URI必须是绝对且层级分明的。
URI只能使用以下方案之一:http、https、ldap或ftp(不区分大小写)。
必须指定主机名或地址,并且必须匹配(不区分大小写)。主机名不进行名称解析以匹配URI与IP地址。
端口号必须匹配。如果省略了端口号,则在比较中使用已知端口。
对于分层方案(http[s], ftp):
规则中URI中归一化路径部分以大小写区分方式匹配。如果最后一个组件不以斜杠(/)结尾,则视为文件路径,必须与CA发行器URI路径组件匹配。如果规则的路径组件以斜杠结尾,则必须与CA发行器URI路径组件的前缀相匹配或为前缀。(例如,的滤波路径将匹配CA的发行者路径,且。)/ab/cd//ab/cd//ab/cd/ef/ab/cd/ef/ghi
匹配CA发行者URI时,查询字符串和片段将被忽略。
对于LDAP的URI:
基础DN必须完全匹配(不区分大小写)。
规则中的任何查询字符串(如果指定)将被忽略。
对于属性,单个值为“任意”(大小写不区分)将生成一个允许所有规则。
漏洞修复
本版本还包含了 Oracle 关键补丁更新中描述的安全漏洞修复。
➜ 17.0.18 修复的问题:
# JBS 组成部分 摘要
1 JDK-8292214 client-libs/2d awt_GraphicsEnv.c:386 的 getAllConfigs 内存泄漏
2 JDK-8334509 client-libs/2d 取消 PageDialog 不会返回相同的 PageFormat 对象
3 JDK-8361748 client-libs/2d 对 XBM 映像大小设定限制
4 JDK-8286159 client-libs/java.awt awt_GraphicsEnv.c:585 的 getAllConfigs 内存泄漏
5 JDK-8324491 client-libs/java.awt 如果键盘布局在对话激活时被更改,键盘布局就不会保持状态
6 JDK-8354646 client-libs/java.awt java.awt.TextField 允许在双击文字开头和结尾时识别密码中的空格
7 JDK-8281523 client-libs/javax.accessibility 可及性:从字符串字面转换失去 const 限定符
8 JDK-8140527 client-libs/javax.swing JinternalFrame的标题按钮宽度不正确
9 JDK-8236907 client-libs/javax.swing 将JTable添加到嵌套面板上不会绘制最后一行可见的行
10 JDK-8139228 client-libs/javax.swing JFileChooser 将文件名渲染为 HTML 文档
11 JDK-8358532 client-libs/javax.swing GTK L&F 中的 JFileChooser 仍然显示 HTML 文件名
12 JDK-8210807 client-libs/javax.swing 用 JScrollPane 打印 JTable 打印的表格时,没有填充行
13 JDK-8257810 client-libs/javax.swing 只有第一页会用 JTable.scrollRectToVisible 打印
14 JDK-8322135 client-libs/javax.swing 在 Windows L&F 中打印 JTable 会触发 InternalError:HTHEME 为空
15 JDK-8349188 client-libs/javax.swing LineBorder 的缩放不正确
16 JDK-8358813 client-libs/javax.swing JPasswordField 通过删除快捷方式识别密码中的空格
17 JDK-8370465 client-libs/javax.swing MenuItem 组件从右向左向的问题
18 JDK-8307990 core-libs/java.lang jspawnhelper 必须关闭其写入一侧的管道,才能读取
19 JDK-8311645 core-libs/java.lang jspawnhelper spawnChild 在 JDK-8307990 之后发生内存泄漏
20 JDK-8280124 core-libs/java.lang 减少从 UTF-8 编码字节中解码拉丁 1 字符的分支
21 JDK-8282047 core-libs/java.lang 增强StringDecode/Encode微基准测试
22 JDK-8365086 core-libs/java.net CookieStore.getURIs() 和 get(URI) 应该返回一个不可变的列表
23 JDK-8369184 core-libs/java.util:i18n 对于不同哈希码值的不相等实例,SimpleTimeZone 等于 () 返回为真
24 JDK-8328085 热点/编译器 C2:免费后在PhaseChaitin使用::Register_Allocate()
25 JDK-8364993 热点/JFR JFR:关闭JDK。default.jfc 中的 ModuleExport
26 JDK-8364556 热点/JFR JFR:在default.jfc中禁用SymbolTableStatistics和StringTableStatistics
27 JDK-8369992 热点/JFR JFR:在default.jfc中禁用占位符、加载约束和保护域缓存表统计
28 JDK-8328997 热点/运行时 移除 GrowableArray 中不必要的模板参数列表
29 JDK-8317132 热点/运行时 准备允许的热点——
30 JDK-8361447 热点/运行时 [重做]已检查的 JNI 版本 Release<type>ArrayElements 需要过滤掉已知的包裹数组
31 JDK-8364235 热点/运行时 JDK-8361447 修复后,GuardedMemory 的对齐要求失效
32 JDK-8364660 热点/运行时 ClassVerifier::ends_in_athrow() 应该被移除
33 JDK-8306579 基础设施/其他 考虑用 /Zc:throwingNew 来构建
34 JDK-8317332 security-libs/java.security 准备允许的安保——
35 JDK-8325680 security-libs/org.ietf.jgss deleteGSSCB 中的未初始化内存 GSSLibStub.c:179
36 JDK-8365790 tools/jpackage 应用程序映像的关闭钩子在 Windows 上无法使用
下载地址
其它版本
210MB | 简体中文 | 2026-01-21 17:26:39
151MB | 简体中文 | 2022-08-21 10:45:29
157MB | 简体中文 | 2023-01-20 12:26:31
180MB | 简体中文 | 2022-09-21 08:36:39
158MB | 简体中文 | 2024-01-18 08:41:15
307MB | 简体中文 | 2025-10-23 14:20:48
163MB | 简体中文 | 2026-01-22 10:58:23
162MB | 简体中文 | 2024-07-17 11:51:02
202MB | 简体中文 | 2025-01-22 14:41:14
159MB | 简体中文 | 2026-01-22 11:02:42
更多版本
人气软件

Java SE Development Kit(JDK) 17.0.18 官方正式版 Win64
Java SE Development Kit(JDK) 17.0.18 官方正式版 Linux64
JetBrains Pycharm Pro v2025.3.1.1 中文专业免费正式版(附汉化
JDK11(Java SE Development Kit 11) v11.0.30 x64 LTS 长期支持
intellij IDEA v2025.3.1.1 官方中文正式版(附汉化包+安装方法)
EXT界面图形工具Ext Designer 特别版
Java SE Development Kit(JDK1.8) jdk-8u481-windows-x64.exe 64
myeclipse2016破解工具 v1.0 破解补丁(附安装教程)
安卓集成开发工具Android Studio 2025.2.2.7 + SDK 2024.1.09 Wi
WinHex v21.0 绿色汉化特别版(无需注册)
相关文章
-
Java配置 JDK开发环境搭建及环境变量配置详细图文教程这篇文章主要介绍了Java配置 JDK开发环境搭建及环境变量配置详细图文教程,需要的朋友可以参考下...
-
windows下jdk安装图解(覆盖安装报错)这篇文章主要介绍了windows下jdk安装图解,覆盖安装报错,第一次安装和第二次安装区别,需要的朋友可以参考下...
-
把MyEclipse的默认jdk版本修改为本地JDK的方法介绍最近,有不少网友问小编如何更改MyEclipse默认的JDK版本为自己安装的JDK?今天小编就给大家详细介绍一下把MyEclipse的默认jdk版本修改为本地JDK的方法,希望对大家有所帮助...
-
JDK1.9怎么安装配置?Java SE 9(JDK9)详细安装教程+环境变量配置方法JDK1.9是JDK是整个Java的核心,包括了Java运行环境,一堆Java工具和Java基础的类库。新版本增添了特性和性能提升,下面小编就整理了Java SE Development Kit 9.0安装详细步...
-
mac安装jdk及环境变量配置文件这篇文章主要介绍了mac安装jdk及环境变量配置文件的详细操作过程,喜欢的收藏一下吧。...
-
Java jdk环境变量配置方法这篇文章主要介绍了Java jdk环境变量配置方法的相关资料,需要的朋友可以参考下...
下载声明
☉ 解压密码:www.jb51.net 就是本站主域名,希望大家看清楚,[ 分享码的获取方法 ]可以参考这篇文章
☉ 推荐使用 [ 迅雷 ] 下载,使用 [ WinRAR v5 ] 以上版本解压本站软件。
☉ 如果这个软件总是不能下载的请在评论中留言,我们会尽快修复,谢谢!
☉ 下载本站资源,如果服务器暂不能下载请过一段时间重试!或者多试试几个下载地址
☉ 如果遇到什么问题,请评论留言,我们定会解决问题,谢谢大家支持!
☉ 本站提供的一些商业软件是供学习研究之用,如用于商业用途,请购买正版。
☉ 本站提供的Java SE Development Kit(JDK) 17.0.18 官方正式版 Linux64资源来源互联网,版权归该下载资源的合法拥有者所有。



























