Java 10 移除的废弃 API、特性与选项清单
已移除项目汇总
Java 10 清理了大量长期废弃的 API、工具与选项,减少维护负担、精简运行时体积。
1. Swing LookAndFeel 类名变更
Nimbus 与 Aqua 旧类名移除,需迁移至新包路径:
// Nimbus 旧 → 新
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
// →
UIManager.setLookAndFeel("javax.swing.plaf.nimbus.NimbusLookAndFeel");
// Aqua 旧 → 新
UIManager.setLookAndFeel("apple.laf.AquaLookAndFeel");
// →
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
2. 废弃国际化机制移除
Runtime.getLocalizedInputStream()Runtime.getLocalizedOutputStream()
属于过时的本地化流机制,已无替代必要。
3. RMI 服务端多路复用协议
Java 9 已禁用,Java 10 彻底移除。
4. 通用 DOM API 移除
com.sun.java.browser.plugin2.DOMsun.plugin.dom.DOMObject
替代方案:使用 netscape.javascript.JSObject 操作 DOM。
5. 性能分析工具清理
FlatProfiler(Java 9 废弃,Java 10 移除)- 废弃 HotSpot
-X选项:-Xoss、-Xsqnopause、-Xoptimize、-Xboundthreads、-Xusealtsigs
6. JavaFX 相关移除
- T2K 光栅化器与 ICU 布局引擎
- VP6/FXM/FLV 视频编码/容器支持 → 改用 H.264/AVC1 (MP4) 或 HTTP Live Streaming
7. 安全相关清理
- 预 1.2 时代
SecurityManager方法/字段(标记forRemoval=true) policytool安全策略工具移除com.sun.security.auth.**下 7 个废弃类移除:
com.sun.security.auth.PolicyFile
com.sun.security.auth.SolarisNumericGroupPrincipal
com.sun.security.auth.SolarisNumericUserPrincipal
com.sun.security.auth.SolarisPrincipal
com.sun.security.auth.X500Principal
com.sun.security.auth.module.SolarisLoginModule
com.sun.security.auth.module.SolarisSystem
8. 文档工具更新
- 旧标准 Doclet(JDK 6/7/8 时代 HTML 生成器)移除,已被新版替代。
javah原生头文件生成工具移除,功能并入javac -h。
9. 启动器选项清理
- 数据模型选项
-d32、-d64、-J-d32、-J-d64移除(64 位已成主流,32 位支持早已淘汰)。
迁移建议
- 升级前运行
jdeprscan扫描项目中的废弃 API 使用。 - Swing 应用检查 LookAndFeel 设置代码。
- 依赖 RMI 多路复用、旧 DOM API、JavaFX 旧媒体格式的项目需重构。
- 构建脚本移除已废弃的
-X选项与javah调用。
java
- 精通 Java 运算符:类型、语法与实战示例
- Java 注释:类型、用法与最佳实践
- 精通 Java 增强 for 循环:语法、示例与最佳实践
- 精通 Java 字符串:创建、方法与最佳实践
- 精通 Java 接口:概念、实现与最佳实践
- 精通 Java 匿名内部类:定义、语法与实战示例
- 精通 Java Try-With-Resources:自动资源管理详解
- Java 注解详解:类型、放置位置与实战示例
- Java 断言实战指南:尽早发现 Bug 与保障代码可靠性
- 深入理解 Java Vector:用法、特性及与 ArrayList 的对比
- Java 10 新增 70+ API 与特性详解
- JDK 10 废弃预警:标记为移除的关键 API 与模块