JDK17和JavaFX17中rt.jar与jfxrt.jar的等效替代库是什么
JDK17与JavaFX17等效替代库说明
1. rt.jar 的等效替代
rt.jar是JDK8及更早版本的核心运行时类库,Java9引入模块化系统后已被完全拆分,JDK17中的对应功能分散在官方内置的标准模块中,无需额外引入第三方库:
- 基础通用功能全部包含在默认加载的
java.base模块中 - 桌面、Swing、图像IO等功能对应
java.desktop模块 - 数据库访问功能对应
java.sql模块 - 其他原有
rt.jar中的公开API都有对应的官方标准模块覆盖,可在module-info.java中按需声明依赖即可 - 如果你之前用到了
rt.jar中的非公开内部API(如sun.misc包下的类),优先使用JDK17提供的公开等效API替换,例如用java.lang.invoke.VarHandle替代Unsafe的内存操作能力
2. jfxrt.jar 的等效替代
jfxrt.jar是JDK8中内置的JavaFX统一运行时包,从Java11开始JavaFX已从JDK中独立孵化,JavaFX17中将原有jfxrt.jar的功能拆分为多个可按需引入的独立模块:
- 基础组件、布局控件对应
javafx.controls模块 - FXML相关功能对应
javafx.fxml模块 - 图形渲染、基础窗体对应
javafx.graphics模块 - 音频视频播放对应
javafx.media模块 - 内嵌浏览器功能对应
javafx.web模块
你可以根据项目实际需要引入对应模块即可,无需引入完整的JavaFX全量包,使用Maven/Gradle等构建工具时直接引入对应模块的官方依赖坐标即可,也可以直接下载JavaFX17官方SDK后引用本地jar包。
小提示:升级后可以使用
jlink工具自定义JRE运行时镜像,只保留项目用到的模块,大幅减小应用最终打包体积。
内容的提问来源于stack exchange,提问作者lemang coconut
相关产品推荐
相关产品推荐

