Java17使用实践
一、安装
到ORACLE官网下载了最新版Java17
[https://www.oracle.com/java/technologies/downloads/#jdk17-windows]
image.png解压安装包到Java目录
image.pngIDEA项目结构中添加SDK配置
image.png二、启动
程序不做任何修改,直接启动项目,报错内容如下
image.png类文件主版本61对应的Java SDK 17,我的spring boot使用的是RELEASE的最后一个版本为 2.3.12.RELEASE
image官网上很显然的可以看到,2.3.12.RELEASE使用的是JDK8到15之间,解决办法就是升级Springboot。
Spring Boot 2.5.5是Spring Boot 第一个支持Java 17的版本,所以我们升级Springboot到2.5.5,产生另一个错误。
image.png查询原因是使用的Gradle版本(6.5)过低,解决办法是升级Gradle版本到最新的7.3。
升级后,不出意外继续报新的错误,如下:
image.png可以看出改错误是由于私有repository未使用https导致,查询资料发现Gradle7.0增加了对Maven url的安全验证,传统不安全的以http开头的url,会导致引入仓库失败。依照官方说明可以增加allowInsecureProtocol在自己的Maven{}里。
image.png在项目settings.gradle文件中添加:
image.png至此Gradle Build成功。
启动程序,出现新的错误,如下:
image.png猜测大概率是lombok版本不匹配,于是将lombok升级到最新版本1.18.22。
修改后,程序启动成功。
三、总结
项目升级到Java17步骤包括安装Jdk17,配置IDEA,升级Gradle版本,升级Springboot、Lombok等依赖包版本(目前主流依赖包均已支持Java17),到部署阶段需要将Docker镜像依赖的基础包版本升级为
openjdk:17-jdk-alpine