OpenJDK 提出了编号 JEP 541 的提案,建议从 JDK 27 开始弃用 macOS/x64 移植版本。提案由 Mikael Vidstedt 主导,2026 年 6 月 5 日创建,目前状态是 Candidate(候选),还没有正式通过。
弃用不等于删除。JDK 27 发布后,已经装好的 Java 环境不会突然失效。真正变的是维护责任:Oracle 工程师退出,默认持续集成关闭,代码本身还留在仓库里。
先动的是构建流程,不是已发布版本
按提案描述,普通用户执行 ./configure 编译 macOS/x64 版本会直接报错退出,代码是 1。想强行编译,得加上新选项 --enable-deprecated-ports,报错会降级成警告,流程能走完。但官方不保证这个版本还能编译成功,更不保证编译出来能正常运行。
| 构建方式 | 现状(弃用前) | JDK 27 弃用后 |
|---|---|---|
默认执行 ./configure | 正常编译 | 报错退出,代码 1 |
加 --enable-deprecated-ports | 不需要 | 报错降级为警告,可继续构建,但不保证成功或能正常运行 |
| GitHub Actions 持续集成 | 覆盖 macOS/x64 | 默认关闭 |
JDK 仓库文档也会把 macOS/x64 标注为"计划移除"。一旦默认构建和 CI 保障都撤了,这条移植线出问题不会有人第一时间发现和修。
JEP 541 只针对 JDK 27 之后的官方构建,不涉及已经发布的版本。正在用的 JDK 21、25 等 LTS 二进制不会因为这份提案突然失效。但官方后续会维护到什么程度、更早的更新流是否跟进同样的弃用逻辑,提案文本里没有交代,这一点目前看不清。
两类人现在就该做决定
受影响的不是所有 Java 用户,是两类具体的人:还在英特尔 Mac 上做开发和跑 CI 的团队,以及负责打包发行 macOS x64 二进制、做兼容性测试的厂商。
| 受影响对象 | 现状 | 可以做的动作 |
|---|---|---|
| 用英特尔 Mac 做 Java 开发 / CI 的团队 | 暂时能用,但官方维护和 CI 保障已经开始退出 | 评估换 Apple Silicon 设备的时间窗,不必等到 JDK 27 正式发布才动手 |
| 发行 macOS x64 二进制、跑兼容性测试的厂商 | JEP 541 还是候选状态,正式整合前有接盘窗口 | 现在决定要不要接手维护;没人接盘,弃用大概率走向正式移除 |
提案里留了退路:正式整合前,如果有可信开发者明确表示愿意接手维护,JEP 541 可以直接撤回。整合之后、正式移除之前才有人站出来,也能靠后续 JEP 把决定反转回去。这套机制不是新花样,OpenJDK 处理过去其他平台移植版本弃用时用的就是它。
苹果六年前转 Arm,OpenJDK 现在收尾
Oracle 给出的理由是维护成本:苹果硬件早就转向 AArch64,继续维护 x64 移植线越来越不划算。苹果发布首款 M1 芯片是在 2020 年,距今六年,Mac 产品线基本完成了向 Arm 的整体切换。
这更像是 OpenJDK 跟着硬件厂商的节奏走完最后一步,而不是自己主动收缩。材料里没有提到 Oracle 财务或业务层面的压力,把这次弃用读成"财务吃紧"是过度解读。
真正的变量只有一个:有没有人愿意接盘。JEP 541 还是候选状态,没有确定的正式移除时间。等不到接盘的开发者,这条移植线大概率会走完弃用、观察、移除这三步。
