JDK8 升级到 JDK17 怎么搞

2022-08-12 18:25:39 +08:00
 overthemoon

项目一直用 jdk8 ,一下子就得升级到 17 ,启动就报找不到 rt.jar 的错误
“java: 程序包 sun.reflect.generics.reflectiveObjects 不存在”
咋解决这个 jar 包问题??
接着就是 springboot 版本问题
还有其它坑需要注意的吗

3892 次点击
所在节点    程序员
10 条回复
netizenHan
2022-08-12 18:37:33 +08:00
JerryX
2022-08-12 20:24:13 +08:00
可以改 openjdk ,去清华的镜像站去下载,然后建一个 java 文件夹,所有版本的 jdk 都放进去,挑一个常用的加到环境变量,其余的就是 IDE 需要哪个就配哪个
liaohongxing
2022-08-12 20:33:24 +08:00
技术债。隔了几代升级想没有问题有点难。
geekvcn
2022-08-12 20:46:55 +08:00
JAVA 项目经验,不要给老项目升级 JDK ,新项目再升级 JDK ,老项目升级 JDK 建议重构
whx
2022-08-12 21:25:44 +08:00
Slurp
2022-08-12 21:49:19 +08:00
建议了解一下 JDK 9 引入的模块化,Java 对访问 JDK 内部实现的限制越来越严格了,尽量避免反射 Java 内部类,以及使用 sun 开头的包。

要说还有什么坑,用了 finalize 的话,JDK 17 已经标记为 forRemoval 了…
Bingchunmoli
2022-08-13 01:50:44 +08:00
如果没有 oracle 直接更新 jdk 即可,如果使用了 sun 包下的功能使用 oraclejdk 尝试,不行就找替代方法说明被删除了
ZhiyuanLin
2022-08-13 13:10:49 +08:00
先 11 ,修所有 error 和 depreciation 警告,然后再 17 ,重复一遍。
不要想一步到位。
night98
2022-08-14 02:05:54 +08:00
lombok 需要升级,否则过不了编译。
其他的都还行,主要注意下类似银行或者一些菜鸡三方的依赖,大概率会依赖 JDK8 某个过期的 class 比如 base64.class ,导致缺依赖压根没法编译,其他的一般来说不搞 hack 魔法不会出啥问题
ychost
2022-08-14 10:00:18 +08:00
建议重构,老项目就不要升级

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/872499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX