欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java SE Development Kit(JDK) 17 for Mac v17.0.16 蘋果電腦版

JDK17 Mac版下載

  • 軟件大?。?span>336MB
  • 軟件語言:簡體中文
  • 軟件類型:國產軟件
  • 軟件授權:免費軟件
  • 軟件類別:開發(fā)軟件
  • 應用平臺:Mac平臺
  • 更新時間:2025-08-01
  • 網(wǎng)友評分:
360通過 騰訊通過 金山通過

情介紹

Java SE Development Kit 17(JDK/Java 17) 正式 GA已經發(fā)布,按照發(fā)布規(guī)劃,JDK/Java 17 屬于長期支持版本 (LTS),將會獲得 8 年的技術支持,直至 2029 年 9 年。Java 17 LTS 是 Java SE 平臺的最新長期支持版本。 根據(jù) Oracle 免費條款和條件許可,JDK 17 二進制文件可在生產中免費使用,并可免費重新分發(fā)。至少在 2024 年 9 月之前,JDK 17 將根據(jù)這些條款接收更新。

Java SE Development Kit 17 for Windows :點擊下載

Java SE Development Kit 17 for Linux :點擊下載

JDK 是使用 Java 編程語言構建應用程序和組件的開發(fā)環(huán)境。JDK 包括用于開發(fā)和測試用 Java 編程語言編寫并在 Java 平臺上運行的程序的工具。本次提供的是Java SE Development Kit(JDK) 17 for Mac官方版本下載,歡迎需要此款工具的朋友前來下載使用。

JDK/Java 17 總共包含 14 個 JEP,如下:

306: Restore Always-Strict Floating-Point Semantics
356: Enhanced Pseudo-Random Number Generators
382: New macOS Rendering Pipeline
391: macOS/AArch64 Port
398: Deprecate the Applet API for Removal
403: Strongly Encapsulate JDK Internals
406: Pattern Matching for switch (Preview)
407: Remove RMI Activation
409: Sealed Classes
410: Remove the Experimental AOT and JIT Compiler
411: Deprecate the Security Manager for Removal
412: Foreign Function & Memory API (Incubator)
414: Vector API (Second Incubator)
415: Context-Specific Deserialization Filters

功能特性

JDK 17 發(fā)行說明:https://www.oracle.com/java/technologies/javase/17-relnote-issues.html

Restore Always-Strict Floating-Point Semantics

恢復始終執(zhí)行嚴格模式 (Always-Strict) 的浮點定義

Enhanced Pseudo-Random Number Generators

添加增強的偽隨機數(shù)生成器

New macOS Rendering Pipeline

為 macOS 引入新渲染管道

macOS/AArch64 Port

支持將 JDK 移植到 macOS/AArch64 架構

Deprecate the Applet API for Removal

棄用待移除的 Applet API

Strongly Encapsulate JDK Internals

強封裝的 JDK 內部 API,默認對 JDK 內部進行強封裝

Pattern Matching for switch (Preview)

switch 模式匹配進入預覽 (Preview) 階段

Remove RMI Activation

移除 RMI(遠程方法調用)激活機制

Sealed Classes

密封類和接口正式可用,用于限制哪些類和接口可以繼承或實現(xiàn)它們。

Remove the Experimental AOT and JIT Compiler

移除實驗性的 AOT 和 JIT 編譯器

Deprecate the Security Manager for Removal

棄用待移除的安全管理器 (Security Manager)

Foreign Function & Memory API (Incubator)

外部函數(shù)和內存 API 進入孵化階段,Java 應用程序通過該 API 能夠與 Java 運行時之外的代碼和數(shù)據(jù)進行互操作。

Vector API (Second Incubator)

在 JDK/Java 17 中,Vector API 已進入孵化的第二階段,Vector API 用于表達可在支持的 CPU 架構上編譯為最佳矢量硬件指令的矢量計算,以實現(xiàn)優(yōu)于等效標量計算的性能。

Context-Specific Deserialization Filters

增加面向特定上下文的反序列化過濾器,此特性允許應用程序通過 JVM 的過濾器工廠配置特定于上下文和動態(tài)選擇的反序列化過濾器。

值得一提的是,根據(jù) Oracle 最新推出的「Free Java License」,Oracle JDK 可免費用于生產環(huán)境。

Free Java License 摘要

  • 為 Oracle JDK 免費提供所有季度的安全更新,包括商業(yè)和生產用途。
  • 新的許可證屬于“Oracle 免費條款和條件”(NFTC) 許可證。此許可證允許所有用戶免費使用,甚至可以用于商業(yè)和生產用途。再分發(fā)同樣不收取費用。
  • 開發(fā)者和組織現(xiàn)可輕松下載、使用、共享和重新分發(fā) Oracle JDK。
  • Oracle 將從 Oracle JDK 17 開始提供這些免費版本和更新,并在下一個 LTS 版本發(fā)布之后繼續(xù)提供整整一年。注意以前的版本不受此更改的影響。
  • Oracle 將繼續(xù)按照自 Java 9 以來的相同版本和時間表提供 GPL 下的 Oracle OpenJDK 版本。

此外,Oracle 還提議將 JDK LTS 的發(fā)布周期從每三年一次改為每兩年一次。如果該提案被接受,這意味著 JDK 17 之后的下一個 JDK LTS 版本將是 JDK 21,而不是 JDK 23。

JDK17新特性詳解

預覽版:該功能在當前版本可以使用,如果效果不是很好的話,可能以后的其他版本就會刪去該功能。

最終版:該功能在之前版本效果很好,之后的每個版本中都會存在該功能。

1、switch新增模式(預覽版)

使用 switch 表達式和語句的模式匹配以及對模式語言的擴展來增強 Java 編程語言。將模式匹配擴展到 switch 允許針對多個模式測試表達式,每個模式都有特定的操作,以便可以簡潔安全地表達復雜的面向數(shù)據(jù)的查詢。基于JDK16 instanceof模式匹配(最終版)優(yōu)化升級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("首先判斷對象是否為空,走空指針邏輯等后續(xù)邏輯");
case String s -> System.out.println("判斷是否為字符串,s:" + s);
case record p -> System.out.println("判斷是否為Record類型: " + p.toString());
case int[] arr -> System.out.println("判斷是否為數(shù)組,展示int數(shù)組的長度" + 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("判斷是否為普通用戶實現(xiàn)類,然后走普通用戶邏輯");
case UserVipService -> System.out.println("判斷是否為vip用戶實現(xiàn)類,然后走vip用戶邏輯");
default -> System.out.println("Something else");
}

2、Realed class密封類(最終版)

密封類和接口限制哪些其他類或接口可以擴展或實現(xiàn)它們。

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、隨機數(shù)增強

為偽隨機數(shù)生成器 (PRNG) 提供新的接口類型和實現(xiàn),包括可跳轉的 PRNG 和額外的一類可拆分 PRNG 算法 (LXM)。

4、浮點運算更加嚴格

簡化數(shù)字敏感庫開發(fā),包括java.lang.Math和java.lang.StrictMath(對開發(fā)無實際意義)

5、Parallel GC 默認啟用

Parallel GC 默認啟用自適應并行處理,并行GC確定java.lang.ref.Reference在垃圾收集期間用于處理實例的最佳線程數(shù)。

默認-XX:ParallelRedProcEnabled: true。在有多個線程可用于垃圾收集的機器上,明顯改善了垃圾收集暫停的階段,如果遇到垃圾收集暫停增加的情況,可以通過-XX:ParallelRedProcEnabled在命令行上指定到原始行為

6、增強TreeMap

增強JDK-8176894(TreeMap 沒有對 putIfAbsent()、computeIfAbsent()、computeIfPresent()、compute() 方法的專門實現(xiàn)。默認實現(xiàn)經常導致兩次樹遍歷,這會損害性能)

7、棄用Socket實現(xiàn)工廠機制

棄用并最終刪除用于為java.net 包中的套接字類型靜態(tài)配置系統(tǒng)范圍工廠 的 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、統(tǒng)一日志支持異步日志刷新

為了避免在使用統(tǒng)一日志的線程中出現(xiàn)不希望的延遲,用戶現(xiàn)在可以請求統(tǒng)一日志系統(tǒng)以異步模式運行。通過傳遞命令行選項來完成的-Xlog:async。在異步日志模式下,日志站點將所有日志消息排入緩沖區(qū)。獨立線程負責將它們刷新到相應的輸出。中間緩沖區(qū)是有界的。緩沖區(qū)耗盡時,將丟棄排隊消息??梢允褂妹钚羞x項控制中間緩沖區(qū)的大小-XX:AsyncLogBufferSize=<bytes>。

9、新增 java.time.InstantSource

java.time.InstantSource引入了一個新界面。這個接口是一個抽象java.time.Clock,只關注當前時刻,不涉及時區(qū)。

10、javadoc工具

新的“新 API”頁面和改進的“棄用”頁面,JavaDoc 現(xiàn)在可以生成一個頁面,總結最近 API 的變化。要包含的最新版本列表是使用--since命令行選項指定的。這些值用于查找@since要包含在新頁面上的具有匹配標簽的聲明。該--since-label命令行選項提供了“新API”頁面的標題文本使用。

在 macOS 上安裝 JDK

在 macOS 上安裝 JDK:

.dmg從.tar.gz頁面下載所需的 JDK或文件 :

macOS x64 系統(tǒng): 或jdk-17.interim.update.patch_macos-x64_bin.dmgjdk-17.interim.update.patch_macos-x64_bin.tar.gz
macOS aarch64(64 位 ARM)系統(tǒng): 或jdk-17.interim.update.patch_macos-aarch64_bin.dmgjdk-17.interim.update.patch_macos-aarch64_bin.tar.gz

單擊接受許可協(xié)議。

從瀏覽器下載窗口或文件瀏覽器,雙擊.dmg文件以啟動它。

出現(xiàn)一個Finder窗口,其中包含一個打開框的圖標和.pkg文件名。

雙擊該圖標以啟動安裝應用程序。JDK 17.pkg

安裝應用程序顯示簡介窗口。

點擊繼續(xù)。

在安裝類型窗口出現(xiàn)。

單擊安裝。

出現(xiàn)一個窗口,顯示消息: 安裝程序正在嘗試安裝新軟件。輸入您的密碼以允許此操作。

輸入管理員用戶名和密碼,然后單擊安裝軟件。

安裝軟件并顯示確認窗口。

安裝軟件后,如果要節(jié)省磁盤空間,可以刪除.dmg 或 .tar.gz文件。

在 macOS 上卸載 JDK

在 macOS 上卸載 JDK:

您必須具有管理員權限。

筆記:不要試圖通過從 中刪除 Java 工具來卸載 Java /usr/bin。此目錄是系統(tǒng)軟件的一部分,Apple 將在您下次執(zhí)行操作系統(tǒng)更新時重置任何更改。

去/Library/Java/JavaVirtualMachines。

rm以root用戶身份執(zhí)行命令或使用sudo工具刪除名稱與以下格式匹配的目錄:

/Library/Java/JavaVirtualMachines/jdk-17.interim.update.patch.jdk

例如,要卸載17 Interim 0 Update 0 Patch 0:

$ rm -rf jdk-17.jdk

macOS 安裝常見問題

本主題提供了有關在 macOS 計算機上安裝 JDK 的以下常見問題解答。

1. 如何找出系統(tǒng)默認的Java版本?

當您從命令行運行 Java 應用程序時,它使用默認的 JDK。如果您不開發(fā) Java 應用程序,那么您無需擔心這一點。請參閱確定 macOS 上的默認 JDK 版本。

2. 安裝 Java for macOS 2012-006 后,我可以繼續(xù)使用 Apple 的 Java 6 和 macOS JDK for Java 17嗎?

如果您想繼續(xù)使用命令行使用 Java 6 進行開發(fā),那么您可以為您喜歡的命令環(huán)境修改啟動腳本。對于 bash,使用這個:

$ export JAVA_HOME=`/usr/libexec/java_home -v 17`

一些應用程序使用/usr/bin/java調用 Java。為 macOS 2012-006 安裝 Java 后,/usr/bin/java將找到安裝的最新 JDK,并將其用于/usr/bin. 您可能需要修改這些應用程序才能找到 Java 6,或者聯(lián)系開發(fā)人員獲取更新版本的應用程序。

4. Application Utilities 中的 Java Preferences 應用程序發(fā)生了什么變化?

Java Preferences 應用程序是 Apple Java 安裝的一部分,Oracle Java 不使用它。因此,不包含 Apple Java 的 Apple macOS 版本將不包含 Java 首選項。

更新日志

Java™ SE 開發(fā)工具包 17,更新 17.0.16 (JDK 17.0.16)
7月 15, 2025

此更新版本的完整版本字符串是 17.0.16+12(其中“+”表示“生成”)。 版本號為 17.0.16。此 JDK 符合 Java SE 規(guī)范 17.1 版 (JSR 392 MR 1 2024-07-02)。

IANA TZ 數(shù)據(jù) 2025b
JDK 17.0.16 包含 IANA 時區(qū)數(shù)據(jù) 2025b,其中包含以下更改:

智利艾森地區(qū)的新區(qū)域,從 -04/-03 移至 -03。
有關詳細信息,請參閱 JRE 軟件中的時區(qū)數(shù)據(jù)版本。

安全基線

下表指定了 JDK 17.0.16 發(fā)布時 Java 運行時的安全基線:

Java 系列版本    安全基線(完整版本字符串)
17    17.0.16+12
11    11.0.28+12
8    1.8.0_461-b11

使 JDK 保持最新狀態(tài)

Oracle 建議在每次關鍵補丁更新時更新 JDK。 為了確定某個版本是否是最新版本,“安全基線”頁面可以 用于確定每個版本系列的最新版本。

包含安全漏洞修復的關鍵補丁更新會提前一年公布 關鍵補丁更新、安全警報和公告。 不建議在計劃的下一個關鍵補丁更新之后使用此 JDK(版本 17.0.16) 2025 年 10 月 21 日。

Java 管理服務可供所有用戶使用,可以幫助您在系統(tǒng)中查找易受攻擊的 Java 版本。在 Oracle Cloud 中運行的 Java SE 訂閱者和客戶可以使用 Java 管理服務來更新 Java 運行時并執(zhí)行進一步的安全審查,例如識別 Java 程序使用的潛在易受攻擊的第三方庫?,F(xiàn)有 Java 管理服務用戶單擊此處登錄您的儀表板。Java Management Service 文檔提供了對所有人可用的功能列表,以及僅對客戶可用的功能。了解有關使用 Java Management Service 監(jiān)視和保護 Java 安裝的更多信息。

刪除的功能和選項

security-libs/java.security
? 在到期日期后刪除了 Baltimore CyberTrust 根證書 (JDK-8303770)

以下過期的根證書已從密鑰庫中刪除:cacerts

+ alias name "baltimorecybertrustca [jdk]"

  Distinguished Name: CN=Baltimore CyberTrust Root, OU=CyberTrust, O=Baltimore, C=IE

security-libs/java.security
? 刪除了兩個 Camerfirma 根證書 (JDK-8350498)

以下已終止且不再使用的根證書已從密鑰庫中刪除:cacerts

+ alias name "camerfirmachamberscommerceca [jdk]"

  Distinguished Name: CN=Chambers of Commerce Root, OU=http://www.chambersign.org, O=AC Camerfirma SA CIF A82743287, C=EU

+ alias name "camerfirmachambersignca [jdk]"
  Distinguished Name: CN=Global Chambersign Root - 2008, O=AC Camerfirma S.A., SERIALNUMBER=A82743287, L=Madrid (see current address at www.camerfirma.com/address), C=EU

其他說明

security-libs/java.security
? 添加了 4 個來自 Sectigo Limited 的新根證書 (JDK-8359170)

以下根證書已添加到 cacerts 信任庫中:

+ Sectigo Limited

  + sectigocodesignroote46
    DN: CN=Sectigo Public Code Signing Root E46, O=Sectigo Limited, C=GB

+ Sectigo Limited
  + sectigocodesignrootr46
    DN: CN=Sectigo Public Code Signing Root R46, O=Sectigo Limited, C=GB

+ Sectigo Limited
  + sectigotlsroote46
    DN: CN=Sectigo Public Server Authentication Root E46, O=Sectigo Limited, C=GB

+ Sectigo Limited
  + sectigotlsrootr46
    DN: CN=Sectigo Public Server Authentication Root R46, O=Sectigo Limited, C=GB

安裝/安裝

? 使用 OL9 簽名密鑰對 oracle.com JDK RPM 包進行簽名 (JDK-8351906(非公開))
oracle.com 個旨在直接下載到目標系統(tǒng)的 JDK RPM 包現(xiàn)在使用 OL9 簽名密鑰而不是 OL8 簽名密鑰進行簽名。托管在 YUM 存儲庫上的 RPM 包仍使用目標存儲庫的相應密鑰進行簽名。

core-libs/javax.naming
? 更新 com.sun.jndi.ldap.object.trustSerialData 系統(tǒng)屬性的默認值 (JDK-8290367)

在此版本中,默認情況下,LDAP 提供程序的 JDK 實現(xiàn)不再支持 Java 對象的反序列化:

系統(tǒng)屬性的默認值已更新為 。com.sun.jndi.ldap.object.trustSerialDatafalse
從 LDAP 上下文對 Java 對象進行透明反序列化現(xiàn)在需要顯式選擇加入。依賴于 LDAP 屬性重建 Java 對象或 RMI 存根的應用程序需要將系統(tǒng)屬性設置為 。com.sun.jndi.ldap.object.trustSerialDatatrue

security-libs/jdk.security
? 如果刪除了條目,Jarsigner 應打印警告 (JDK-8309841)

如果從已簽名的 JAR 文件中刪除了某個條目,則沒有機制可以檢測該條目是否已使用 API 被刪除,因為該方法返回的就好像該條目從未存在過一樣。通過此更改,該命令會分析簽名文件,如果某些部分沒有匹配的文件條目,它會打印出以下警告:“此 JAR 包含不存在的文件的簽名條目”。用戶可以通過向命令添加選項來進一步查找這些條目的名稱。JarFilegetJarEntrynulljarsigner -verify-verbose

錯誤修復

此版本還包含針對 Oracle 關鍵補丁更新中描述的安全漏洞的修復。

? 17.0.16 中修復的問題:

#    JBS公司    元件    總結
1    JDK-8348597    客戶端庫/2d    將 HarfBuzz 更新到 10.4.0
2    JDK-8348596    客戶端庫/2d    將 FreeType 更新到 2.13.3
3    JDK-8348600    客戶端庫/java.awt    將 PipeWire 更新到 1.3.81
4    JDK-8348598    客戶端庫/java.awt    將 Libpng 更新至 1.6.47
5    JDK-8280468    客戶端庫/java.awt    Linux 上的 getConfigColormap、getConfigVisualId、XVisualIDFromVisual 崩潰
6    JDK-8286447    客戶端庫/java.awt    [Linux]如果未安裝 headful AWT 庫,則 AWT 應以無頭模式啟動
7    JDK-8280991    客戶端庫/java.awt    [XWayland]setDisplayMode 調用后沒有 displayChanged 事件
8    JDK-8286204    客戶端庫/javax.accessibility    [輔助功能,macOS,旁白]當用戶在 macOS 上首次迭代到 10 時,VoiceOver 會將微調器值 10 讀取為 1
9    JDK-8345728    客戶端庫/javax.accessibility    [輔助功能,macOS,屏幕放大鏡]:JCheckbox 未選中狀態(tài)不放大,但適用于選中狀態(tài)
10    JDK-8348936    客戶端庫/javax.accessibility    [輔助功能,macOS,旁白]VoiceOver 不會宣布在 macOS 上使用“空格”鍵切換復選框時取消選中
11    JDK-8266435    客戶端庫/javax.imageio    WBMPImageReader.read() 不應截斷輸入流
12    JDK-6928542    客戶端庫/javax.swing    RTF 中的漢字不被解碼
13    JDK-8224267    客戶端庫/javax.swing    帶有 5000+ 換行符的 JOptionPane 消息字符串產生 StackOverflowError
14    JDK-8318915    核心庫/java.math    增強 BigDecimal.toPlainString() 中的檢查
15    JDK-8344589    核心庫/java.util:i18n    將 IANA 語言子標記注冊表更新至版本 2024-11-19
16    JDK-8356096    核心庫/java.util:i18n    ISO 4217 修正案 179 更新
17    JDK-8299858    core-svc/java.lang.management    [指標]交換內存限制過大時報告錯誤
18    JDK-8297173    core-svc/java.lang.management    usageTicks 和 totalTicks 應該是易失性的,以確保不同的線程獲得最新的 tick
19    JDK-8345296    熱點/編譯器    AArch64:不允許 prctl 時,虛擬機與 SIGILL 崩潰
20    JDK-8357105    熱點/編譯器    C2:編譯失敗,并顯示“assert(false) failed: opty program during loop optimization detected empty program”
21    JDK-8339148    熱點/運行時    將 os::Linux::active_processor_count() 公開
22    JDK-8300645    熱點/運行時    處理GET_CONTAINER_INFO宏日志記錄中的 julong 值
23    JDK-8300658    熱點/運行時    memory_and_swap_limit() 在 swapAccount=0 的系統(tǒng)上報告錯誤的值
24    JDK-8311546    security-libs/java.security    證書名稱約束未正確驗證前導句點

載地址

下載錯誤?【投訴報錯】

Java SE Development Kit(JDK) 17 for Mac v17.0.16 蘋果電腦版

      氣軟件

      關文章

      載聲明

      ☉ 解壓密碼:www.dbjr.com.cn 就是本站主域名,希望大家看清楚,[ 分享碼的獲取方法 ]可以參考這篇文章
      ☉ 推薦使用 [ 迅雷 ] 下載,使用 [ WinRAR v5 ] 以上版本解壓本站軟件。
      ☉ 如果這個軟件總是不能下載的請在評論中留言,我們會盡快修復,謝謝!
      ☉ 下載本站資源,如果服務器暫不能下載請過一段時間重試!或者多試試幾個下載地址
      ☉ 如果遇到什么問題,請評論留言,我們定會解決問題,謝謝大家支持!
      ☉ 本站提供的一些商業(yè)軟件是供學習研究之用,如用于商業(yè)用途,請購買正版。
      ☉ 本站提供的Java SE Development Kit(JDK) 17 for Mac v17.0.16 蘋果電腦版資源來源互聯(lián)網(wǎng),版權歸該下載資源的合法擁有者所有。