老表:Java8尽管很香,你想过升级到Java11吗?会踩那些坑?下

1,086 阅读2分钟

接上篇

升级建议(重要)

从Java 11后Oracle不再单独发布JRE和Server JRE了,并统一JDK名称为:Oracle JDK。 另外Java 11及之后的版本,将不会再发布对32位操作系统支持的版本。

新旧项目不同策略

新启的Java项目建议直接从Oracle JDK 11开始搭建,千万不要犹豫,因为技术都是越新越强的。Java8就像晚期的大众,而Java11却是新兴的特斯拉。 历史的项目如果只是维护的话,干脆就放着运行不要动好了,等哪天决定重构了再考虑升级到Java11。因为最大的问题不是自己公司开发的Code不能迁移到高版本,而是项目中引入的第三方Jar,这个东西搞起来十分头疼。

JDK升级分析工具

升级最担心的就是被删除的模块! 推荐IBM公司Liberty团队提供了一个十分好用的检测Toolkit程序,可以扫描应用程序二进制文件(.war),发现的任何潜在的Java 11问题并生成Html报告。绝对的大利器,详细内容直接查看IBM官方介绍:Scanner Kit。 直接运行java -jar binaryAppScannerInstaller.jar,按步骤安装有个lisence声明和目录指定,默认目录名wamt。 参考文档中会有使用详细介绍,也可以参考下面测试例子(扫描很慢,要些耐心等): java -jar binaryAppScanner.jar Root.war --analyzeJavaSE --sourceJava=oracle8 --targetJava=java11 --output=./java11/RootReport.html 查看帮助命令: java -jar binaryAppScanner.jar Root.war --help --all 报告结果如下:

JDK不同于OpenJDK

推荐Oracle JDK,因为更加稳定可靠。

只有Oracle JDK支持Solaris系统; 只有Oracle JDK才支持msi这样的安装程序; Oracle JDK版本将每三年发布一次,而OpenJDK版本每三个月发布一次; OpenJDK 是一个参考模型并且是完全开源的,而Oracle JDK是 OpenJDK的一个实现,并不是完全开源的; Oracle JDK 比 OpenJDK 更稳定。OpenJDK和Oracle JDK的代码几乎相同,但建议您选择Oracle JDK,因为它经过了彻底的测试和稳定修复; 在响应性和JVM性能方面,Oracle JDK与OpenJDK相比提供了更好的性能; Oracle JDK不会为即将发布的版本提供长期支持,用户每次都必须通过更新到最新版本获得支持来获取最新版本; Oracle JDK根据二进制代码许可协议获得许可,而OpenJDK根据GPL v2许可获得许可。Oracle公司很善于打官司,所以这点很重要。 你会升级到JDK14吗?欢迎在留言区讨论。