背景與本期重點
InfoQ 每週由 Michael Redlich 整理 Java 領域動態,2026 年 10 月 19 日發布、涵蓋 10 月 12 日當週的這一期,內容大致分成三類。第一類是 OpenJDK 的開發流程進展,包含三項提案正式鎖定(Targeted)至 JDK 28;第二類是函式庫與中介軟體的版本更新,涉及 Azul Payara、Gatherers4j、Yupiik Fusion,以及 Google Agent Development Kit(ADK,Google 提供的代理式 AI 開發工具包,用來建構、測試與部署能自主規劃與呼叫工具的 AI 代理應用)在 Java 與 Kotlin 兩個語言版本上的點版本;第三類是安全公告,Apache Camel 一次性修復了 38 個通用漏洞與揭露(CVE,Common Vulnerabilities and Exposures,一套公開的漏洞編號與描述系統,讓使用者能對照自身版本判斷是否受影響)。對 Java 開發者而言,這一週的訊號很明確:語言層級的功能正在收斂,而生態系的安全壓力正在上升。
JDK 28 的三項 JEP 與早期建置版本
JEP 是 JDK Enhancement Proposal(JDK 增強提案)的縮寫,OpenJDK 用它來描述一項功能從構想、原型、預覽到正式落地的完整過程。一項提案從 Proposed to Target(建議納入)推進到 Targeted(已鎖定),代表社群已決定它會出現在該版本中,但後續仍可能調整細節。本期鎖定的三項提案都與執行時期效能或並發程式設計有關。
JEP 546 針對 ZGC(Z Garbage Collector,OpenJDK 的低延遲垃圾收集器,以分頁式回收與並發整理聞名)提出自適應堆積大小調整,讓收集器依據現有可用資源、應用程式本身的需求,以及同機器上爭搶相同資源的鄰近應用程式的情況,動態決定堆積尺寸。JEP 545 同樣針對 ZGC,目標是讓收集器更迅速、更有效地取得與準備實體記憶體,藉此改善應用程式的啟動與預熱速度。這兩項提案對部署密度高的伺服器環境尤其有意義,因為堆積不再只是靜態配置,而是會隨環境壓力伸縮。
JEP 543 則是結構化並發(Structured Concurrency),一種把分散在不同執行緒中的一組相關任務視為單一工作單元來管理的並發模型,好處是錯誤處理與取消邏輯可以統一,可靠性與可觀測性也更好。這項功能歷經七輪預覽,從 JDK 21 一路延續到即將到來的 JDK 27,另外在 JDK 19 與 JDK 20 各有一輪孵化(incubator)版本,本次宣布不作變更、直接定案。除此之外,JDK 28 的早期建置版本 Build 20 也已釋出,相較 Build 19 修復了若干問題,官方仍建議開發者透過 Java Bug Database 回報缺陷。
生態系版本更新:中介軟體與函式庫
Azul Payara 7.5.0(2026 年 10 月版)同時涵蓋 Community Edition 7.2026.10、Enterprise Edition 6.43.0 與 Enterprise Edition 5.92.0 三個版本。除了例行的缺陷修復與元件升級,本次重點在於簡化運維:SSH 節點不再需要提升權限即可操作,並新增 delete-jvm-option 與 delete-system-properties 兩個屬性,讓使用者能從指令列更方便地管理設定。同時修復了兩個遠端程式碼執行(RCE)漏洞,CVE-2026-2586 允許已能存取管理控制台的攻擊者送出惡意請求,以應用程式服務帳號的權限執行任意作業系統指令;CVE-2026-2587 則存在於伺服器端模板渲染機制,成功利用可讓攻擊者掌控主機,進一步讀取或修改資料、執行指令、建立持久化並橫向移動。
Gatherers4j 0.15.0 是圍繞 Java Stream Gatherers(Java 22 引入的串流終端處理擴充點)建立的函式庫,本次加入一組統計型 gatherer,包含 movingStatistics()、movingStatisticsBy()、runningStatistics() 與 runningStatisticsBy(),它們會對每個元素輸出一個 StatisticalSummary 紀錄型別;另有 movingWeightedMean() 與 movingWeightedMeanBy(),可依開發者指定或預設的線性權重,由舊到新計算加權移動平均。Yupiik Fusion 1.2.0 方面,CliDocumentationGenerator 改為使用 CliLauncher 而非其基底類別 Launcher,以支援指令中多段式選項標記;HandlebarsCompiler 的實作也向 Handlebars 模板引擎本身靠攏,屬破壞性變更。
Google ADK 的兩個語言版本同步更新。ADK for Java 1.12.0 重構了 ContextCacheConfig 建構子,以 cacheIntervals 與 createHttpOptions 參數取代已棄用的 maxInvocations,並加入 Node 介面及其實作 BaseNode、Start,以及 Edge 紀錄型別,用來描述工作流圖。ADK for Kotlin 1.4.0 則新增 EdgesDsl 作為建構工作流圖的 DSL,並提供 ChatCompletions 類別作為 OpenAI Chat Completions API 及其相容端點的模型後端。
安全面:Apache Camel 的 38 個 CVE
Apache Camel 團隊公告修復了影響多個 Camel 元件的 38 個 CVE,其中 13 個評為高危險等級、25 個為中危險等級。值得注意的是來源分布:38 個漏洞中有 28 個由 Claude 作為 Project Glasswing 的一部分自動發現,其餘 10 個由安全研究者回報。Camel 官方建議開發者升級至 4.23.0、4.22.1 或 4.18.5。
影響與限制
這一週的更新呈現兩條並行的線索。語言與執行時期方面,ZGC 的兩項提案指向同一個方向:讓收集器感知資源競爭並更快進入可用狀態,這對容器化部署與短命服務有直接助益;結構化並發定案後,長期依賴 preview API 的程式碼終於可以在 JDK 28 取得穩定承諾。不過提案鎖定不等同於最終發布,預覽功能在後續版本仍可能微調,生產環境應避免在正式版本發布前依賴其 API。
安全面則顯示出新的現實。Apache Camel 有超過七成漏洞由 AI 系統自動發現,代表靜態與動態分析的覆蓋率正在提高,但也意味著公開可利用的弱點會更快被找到;企業使用者能否受益,取決於是否實際升級到指定版本。Azul Payara 的兩個 RCE 漏洞都需要攻擊者先具備控制台存取權,屬於提升權限後的二次利用路徑,但仍應儘早套用更新。整體而言,這一週並無顛覆性變革,卻清楚顯示 Java 生態系的重心正同時落在執行時期效率、開發體驗與供應鏈安全三處。
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。