JDK8升级JDK11过程记录

1、引言

最新版本Java15都出来了,很多小伙伴还在使用Java8,当然JDK15不是长期支持版本,最新的长期支持版本是Java11,而下一个长期支持版本要等到2021年9月发布的Java17。最近把内部几个系统从Java8升级到了Java11,升级过程还是比较简单的。JDK8升级JDK11过程记录_第1张图片Java11的新特性如下,最兴奋的功能是ZGC,相关资料请其他文档JDK8升级JDK11过程记录_第2张图片注:以下教程基于Maven配置## 2、准备工作下载openjdk,这里推荐使用华为镜像:https://mirrors.huaweicloud.com/java/jdk/11.0.2+9/然后导入到Idea中:打开Project Structure,以此点击SDKs–> 加号 --> Add JDK 选择目录添加,当然也可以选第一个Download JDK直接添加,不过笔者网络不好没下下来。JDK8升级JDK11过程记录_第3张图片## 3、编译器支持Maven支持Java11的的最低版本是3.5.4(该版本以后可以不用升级)编译插件支持,设置完成后刷新Idea,会自动将当前项目设置成JDK11 org.apache.maven.plugins maven-compiler-plugin 3.8.1 11 11 ## 4、依赖升级### (1)额外依赖的的jar包 Java11中将一些包从标准JDK中移除,不引用可能会导致项目报错,#### @Resource 注解支持: javax.annotation javax.annotation-api 1.3.1#### jaxb支持:JDK9以后的版本,模块化的概念去除了JAXB(默认没有加载),需做接入声明。 org.glassfish.jaxb jaxb-runtime 2.3.2 javax.xml.bind jaxb-api com.sun.xml.bind jaxb-impl 2.3.0 org.glassfish.jaxb jaxb-runtime 2.3.0 javax.activation activation 1.1.1 ### (2)项目中可能用到的jar包### Lombok:首先把现在项目中所有的lombok依赖排除掉,通过Idea Maven Helper插件搜索:JDK8升级JDK11过程记录_第4张图片然后引入lombok最新版本: org.projectlombok lombok 1.18.14 provided#### Jacoco支持:升级到最新版本,最低要求0.8.0如果是用mavan plugin方式引入,修改pom.xml文件: org.jacoco jacoco-maven-plugin 0.8.6 如果是javaagent方式引入,从官网下载最新的包:https://www.eclemma.org/jacoco/这里下载的是0.8.6.zip,解压开使用里面的/lib/jacocoagent.jar文件即可,JVM参数:-javaagent:${WORK_PATH}/jacocoagent.jar=output=tcpserver,port=6300,address=*"## 5、JVM日志参数java11中将很多日志参数去掉了,比如以下日志参数失效:GC_LOG="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintAdaptiveSizePolicy \ -XX:+PrintGCApplicationStoppedTime -XX:+PrintHeapAtGC -XX:+PrintStringTableStatistics -XX:+PrintTenuringDistribution -Xloggc:$LOG_PATH/gc.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=30 -XX:GCLogFileSize=50M"新的jvm参数:GC_LOG="-Xlog:gc:$LOG_PATH/gc.log"## 6、IDEA可能会遇到的问题排查常见的问题是引入了JDK11,但是编译器不支持Java11新语法,解决方案如下:打开Preferences,配置Java Compiler中的Java版本号JDK8升级JDK11过程记录_第5张图片如果还不行,则打开Project Structure配置project和module的版本号,module的版本号理论上配置了maven compiler插件,会自动刷新[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-x810MFIu-1608120617063)(https://blogpic.chekuspace.com/image-20201114211706680.png)]JDK8升级JDK11过程记录_第6张图片## 6、结语至此,JDK8升级JDK11就完成了,你还遇到过什么问题,欢迎留言讨论本文章授权公共号:肉眼品世界 首发原文链接:https://lesofn.com/archives/jdk8-sheng-ji-jdk11-guo-cheng-quan-ji-lu作者简介:美团Java高级工程师,关注软件架构及职业成长,不定期分享各种技术、资源,对文章中涉及的技术感兴趣或有任何问题请关注微信交流。公共号:Java研发JDK8升级JDK11过程记录_第7张图片

你可能感兴趣的:(JDK8升级JDK11过程记录)