ideajdk升级_JDK8升级至JDK11步骤及要点

项目环境描述:

名称

升级前版本

升级后版本

JDK

JDK 8

JDK 11

Spring Boot

2.1.0

2.1.0

Spring Cloud

Greenwich

Greenwich

Eclipse

Mars.2 Release (4.5.2)

2019-09 R (4.13.0)

一、了解JDK11

1、版本说明

美国当地时间2018年9月25日,Oracle 官方宣布 Java 11 (18.9 LTS) 正式发布,可在生产环境中使用!这是自 Java 8 后的首个长期支持版本。按照 Oracle 公布的支持路线图,Java 11 将会获得 Oracle 提供的长期支持服务,直至2026年9月。

2、许可证

3、新特性

二、开发环境配置

1、JDK11下载与安装

(1)官方下载路径

(2)官方安装指南

(JDK11没有JRE安装,安装与配置相较以前更精简)

2、环境变量配置

替换Path中JDK8的Path目录,改为:C:\Program Files\Java\jdk-11.0.5\bin;

三、JAVA IDE适配版本

1、Eclipse

(1)Eclipse 4.9版本开始支持JDK11版本

(3)我下载的是Eclipse 2019-09 R (4.13.0) 版本

2、IntelliJ IDEA

(1)2018年9月份以前的版本,可能会存在一些问题,尽量下载2019.2版本。

四、修改开发配置

1、maven版本升级

(1)3.5.4版本(该版本以后可以不用升级)

(2)删除JAVA_HOME和CLASSPATH配置,mvn –v查看版本是否正确

(3)maven下载地址

(我下载的3.6.2版本,此版本侧重于性能改进、更好的内存占用和更少的 CPU使用率)

(4)修改环境变量

MAVEN_HOME修改为:E:\Program Files\apache-maven-3.6.2

2、修改eclipse配置

(1)修改maven路径

(2)修改JDK路径

(3)修改Compiler为Java11

五、代码修改

1、编译报错

1、sun.misc.BASE64Encoder、sun.misc.BASE64Decoder找不到类

(1)原因:JDK11中删除了sum.misc包

(2)解决方式:使用java.util.Base64.Encoder、java.util.Base64.Decoder替换

2、服务启动报错

(1)WARNING: Unable to start embedded Tomcat(启动eureka服务时)

原因:JDK11下使用最新的Greenwich版本的eureka默认情况下必定无法启动,日志提示内嵌的Tomcat没法启动。官方原文:

The JAXB modules which the Eureka server depends upon were removed in JDK 11. If you intend to use JDK 11 when running a Eureka server you must include these dependencies in your POM or Gradle file.

解决办法:加入JAXB依赖

org.glassfish.jaxb

jaxb-runtime

2.3.2

(2)WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/E:/WorkSpace/IDEs/MAVEN/RepositoryMicro/com/thoughtworks/xstream/xstream/1.4.10/xstream-1.4.10.jar) to field java.util.TreeMap.comparator(启动客户端服务时)

原因:JDK9以后的版本,模块化的概念去除了JAXB(默认没有加载),需做接入声明。

解决办法:加入JAXB依赖

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

笔者在JDK8的环境下,换到JDK11测试其兼容性,以上是过程记录。不同的环境升级到JDK 11,可能遇到的问题会有些许差异,但大致情况应该差不多。如有疑问,欢迎下方评论。

撰写不易,转载请注明出处,谢谢!

你可能感兴趣的:(ideajdk升级)