项目一直用 jdk8 ,一下子就得升级到 17 ,启动就报找不到 rt.jar 的错误
“java: 程序包 sun.reflect.generics.reflectiveObjects 不存在”
咋解决这个 jar 包问题??
接着就是 springboot 版本问题
还有其它坑需要注意的吗
1
netizenHan 2022-08-12 18:37:33 +08:00 2
|
2
JerryX 2022-08-12 20:24:13 +08:00
可以改 openjdk ,去清华的镜像站去下载,然后建一个 java 文件夹,所有版本的 jdk 都放进去,挑一个常用的加到环境变量,其余的就是 IDE 需要哪个就配哪个
|
3
liaohongxing 2022-08-12 20:33:24 +08:00
技术债。隔了几代升级想没有问题有点难。
|
4
geekvcn 2022-08-12 20:46:55 +08:00 via iPhone
JAVA 项目经验,不要给老项目升级 JDK ,新项目再升级 JDK ,老项目升级 JDK 建议重构
|
5
whx 2022-08-12 21:25:44 +08:00
|
6
Slurp 2022-08-12 21:49:19 +08:00
建议了解一下 JDK 9 引入的模块化,Java 对访问 JDK 内部实现的限制越来越严格了,尽量避免反射 Java 内部类,以及使用 sun 开头的包。
要说还有什么坑,用了 finalize 的话,JDK 17 已经标记为 forRemoval 了… |
7
Bingchunmoli 2022-08-13 01:50:44 +08:00 via Android
如果没有 oracle 直接更新 jdk 即可,如果使用了 sun 包下的功能使用 oraclejdk 尝试,不行就找替代方法说明被删除了
|
8
ZhiyuanLin 2022-08-13 13:10:49 +08:00
先 11 ,修所有 error 和 depreciation 警告,然后再 17 ,重复一遍。
不要想一步到位。 |
9
night98 2022-08-14 02:05:54 +08:00
lombok 需要升级,否则过不了编译。
其他的都还行,主要注意下类似银行或者一些菜鸡三方的依赖,大概率会依赖 JDK8 某个过期的 class 比如 base64.class ,导致缺依赖压根没法编译,其他的一般来说不搞 hack 魔法不会出啥问题 |
10
ychost 2022-08-14 10:00:18 +08:00
建议重构,老项目就不要升级
|