-
Notifications
You must be signed in to change notification settings - Fork 842
Open
0 / 10 of 1 issue completedLabels
Description
概述 | Summary
将用于编译 HMCL 的 JDK 版本,和运行时最低 JRE 版本提升至 Java 23。
- 开发者:建议使用 JDK 25 开发;
- 一般用户:推送 JRE 25 + JavaFX 25 的安装包;
- Windows x86 (32-bit) 用户:推送 JRE 23 的安装包。
原因 | Reason
JEP 454: Foreign Function & Memory API 于 Java 22 进入稳定状态。该 JEP 提供了在不使用 JNI 的前提下,访问本机原生 API 和手动控制堆外内存的能力。
对于 HMCL 而言,我们可以抛弃 JNA 和其中的平台相关动态链接库文件,减小最终 JAR 包体积;将短暂需要大量内存的操作迁移到手动控制的堆外内存,降低 -Xmx 默认值以节约内存。
JEP 479: Remove the Windows 32-bit x86 Port 移除了 Windows x86 架构的支持。自 Java 24 起,OpenJDK 项目不再支持上述系统。因此,停留在 JRE 23 可以继续保留旧系统的兼容性。
另外,现在 JavaFX 会兼容 Java N-2 ,所以 JavaFX 25 也兼容 Java 23,我们可以对所有 64 位平台统一下载 JavaFX 25;JDK 23 - 25 并没有提供非常多好用的 API,不升级到 Java 25 的代价是可以接受的。
风险 | Risks
- FFM 因不在 Windows x86 上支持 stdcall 而无法调用任何 WinAPI;
- 暂未找到可用于 Windows x86 的 JRE 23 产物发布页,我们可能还得自己从源码构建;
替代方案 | Alternatives
- 发布第二个 LTS 版本(但我们大概率是没这个精力的)作为最后兼容 Windows x86 的版本,然后迁移到 Java 25,或;
- 对着 Windows x86 用户竖中指,然后不发布 LTS 版本,直接迁移到 Java 25,或;
- 使用黑魔法在 Java 21 上使用预览状态的 FFM,且想办法适配 Java 21、22、23 的 FFM API 变动。
Reactions are currently unavailable