JDK 从 8 升级到 21 的问题集
一、背景与挑战 1. 升级动因 ◦ Oracle长期支持策略 ◦ 现代特性需求:协程、模式匹配、ZGC等 ◦ 安全性与性能的需求 ◦ AI新技术引入的版本要求 2. 项目情况 ◦ 100+项目并行升级的协同作战 ◦ 多技术栈并存 ◦ 持续集成体系的适配挑战 二、进度 应用总数 已完成 应用下线 待升级 100+ 73 13 10+ 三、主要问题域与解决方案 1. 依赖管理的"蝴蝶效应" • sun.misc.BASE64Encoder等内部API废弃 → 引发编译错误 • JAXB/JAX-WS从JDK核心剥离 → XML处理链断裂 • Lombok与新版编译器兼容性问题(尤其record类型) 核心原因在于JEP320提案:https://openjdk.org/jeps/320 案例1:历史SDK的编译陷阱 Compilation failure: Compilation failure: #14 4.173 [ERROR] 不再支持源选项 6。请使用 8 或更高版本。 #14 4.173 [ERROR] 不再支持目标选项 6。请使用 8 或更高版本。 &l...


