【JDK 11】【JDK 8】项目 jdk 版本升级,修改方案与实践

实践

前言

工作中,难免会遇到升级版本的事情。这次由于两个系统中,系统 A 是用的 JDK8 版本,系统 B 是用 JDK11 版本;要求同步 JDK 版本,也就是升级到11版本。那么接下来将进行介绍~

问题与解决

1. .sh 脚本启动无法启动问题

发现的问题

由于脚本改动并没有什么变化,启动 jdk8 不存在问题能启动成功,启动 jdk11 却无法启动。

JVM 参数 -XX:PermSize、参数 -XX:MaxPermSize、参数 -XX:+PrintGCDateStamps

导致的原因

(1) JDK 11 已经弃用了 -XX:PermSize 参数和 -XX:MaxPermSize 参数,从而会存在导致启动失败。 (这两个参数在 JDK 8 及之前版本被用来设置永久代内存的初始大小和最大大小。)
(2) -XX:+PrintGCDateStamps这个参数在 JDK 8 和 JDK 9 中都是支持的,但在之前的版本中可能会出现不支持的情况。(注:是 -XX:+PrintGCDateStamps 不是 PrintGCDetails

解决的办法

(1) ① 去掉 -XX:PermSize 参数和 -XX:MaxPermSize 参数。
② 在 JDK 11 上使用 -XX:MetaspaceSize 参数和 -XX:MaxMetaspaceSize 代替-XX:PermSize 参数和 -XX:MaxPermSize 参数.
(注:JDK 11 中-XX:MetaspaceSize 参数和 -XX:MaxMetaspaceSize 参数是设置元空间内存的大小。)
(2) 去掉 -XX:+PrintGCDateStamps 这个参数。

2. javafx.util.Pair 替换

发现的问题

启动项目的时候,出现 Error:(27, 19) java: 程序包javafx.util.Pair不存在

导致的原因

JDK 11 已经没有内嵌 javafx

解决的办法

(1) 如果是只有使用 javafx.util.Pair,可以用其他引入的依赖去代替。(如 cn.hutool.core.lang.Pair 等其他)
(2) 项目引入 JavaFX 的相关依赖。

【引入 JavaFX 的相关依赖】(点击展开)

 

3. sun.misc.BASE64Decoder 替换

发现的问题

启动项目的时候,出现 Error:(5, 16) java: 程序包sun.misc不存在

导致的原因

JDK 9 之后已经删除和弃用 sun.misc

解决的办法

(1) 如果是需要替换sun.misc.BASE64Decoder,可以考虑 java.util.Base64代替掉 sun.misc.BASE64Encoder 和 sun.misc.BASE64Decoder

【sun.misc.BASE64Decoder 替换 java.util.Base64 实例】(点击展开)

 

要点

【要点】(点击展开)

总结

本篇文章介绍了, jdk8 升级 jdk11 的一些注意问题。主要围绕-

  1. .sh 脚本启动无法启动问题
  2. javafx.util.Pair 替换
  3. sun.misc.BASE64Decoder 替换
  4. ... (后续碰到会持续更新)

(主要要点:)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值