Jakarta与javax的替换
从 JDK 11 开始,Java SE 平台开始逐步淘汰 javax.*
包,并逐渐将其替换为 jakarta.*
包。这是因为 Java EE 从 Oracle 转移到了 Eclipse 基金会,并改名为 Jakarta EE,因此相关的 API 也相应地进行了迁移和重命名。这一变化对 Java 开发者的影响主要体现在以下几个方面:
1. 包名替换:
在 JDK 11 及之后的版本中,一些原本属于 javax.*
包的 API 已经被替换为 jakarta.*
包下的 API。比如,javax.servlet.*
包中的 API 被替换为 jakarta.servlet.*
包。开发者需要注意在升级到 JDK 11 及以上版本后,应该使用新的包名来引用相关的类和接口。
2. 兼容性:
为了确保向后兼容性,JDK 11 以后的版本仍然会保留 javax.*
包中的 API,但是这些 API 将被标记为不推荐使用,开发者被建议尽快迁移到 jakarta.*
包中的 API。同时,JDK 中也提供了一些工具和脚本,来帮助开发者进行代码迁移。
3. 迁移工具:
为了帮助开发者进行代码迁移,JDK 中提供了一些工具和脚本,比如 jdeps
工具可以用来分析代码中是否存在使用了 javax.*
包的 API,以及 jdk.xml.bind
模块中的迁移工具可以用来将代码中的 JAXB 相关 API 迁移到 java.xml.bind
模块中。
4. 迁移指南:
Oracle 和 Eclipse 基金会也提供了一些迁移指南和文档,帮助开发者顺利地进行代码迁移。这些文档包括了从 javax.*
到 jakarta.*
包的替换规则、常见的迁移问题和解决方案等。
总的来说,对于从 JDK 11 开始的项目,开发者应该尽量避免使用 javax.*
包中的 API,而是使用对应的 jakarta.*
包中的 API,以便确保代码的向后兼容性和可维护性。同时,应该借助 JDK 中提供的工具和文档,尽快进行代码迁移。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!