前言
想创建一个springboot的项目,本地安装的是1.8,但是在使用spring initializr创建项目时,发现版本只有17和21。
在jdk为1.8的情况下,无论选择java17版本或者21版本时,都会报错。
要求你要么选择更低的java版本或者更换更高的sdk版本即跟换jdk版本
-
版本号:java 17 是 java se 17 的版本,而 jdk 1.8 是 java se 8 的版本。
-
发布时间:java 17 发布于 2021 年,而 jdk 1.8 发布于 2014 年.
-
新特性:java 17 相对于 jdk 1.8,新增了很多特性和改进,例如:switch 表达式、sealed 类、pattern
matching for instanceof 等。 -
兼容性:java 17 和 jdk 1.8 不兼容,由于 java 的向后兼容性,java 17 可以运行 jdk 1.8 的代码,但
jdk 1.8 不支持 java 17 的新特性。 -
安全性:java 17 相对于 jdk 1.8,修复了更多的安全漏洞,提高了程序的安全性。
"exe"和"msi"是两种常见的文件扩展名,用于windows操作系统中的安装程序。它们之间有以下区别:
- 格式:exe文件是可执行文件,而msi文件是windows installer安装包。
- 安装方式:exe文件通常是自解压缩文件,一般包含一个可执行文件和其他必要的资源。当你运行exe文件时,它会解压缩并执行其中的程序来完成安装。msi文件是一种基于windows installer技术的安装包,它采用了windows installer服务来处理安装和卸载操作。
- 安装过程:exe文件通常是自包含的安装程序,可以执行多个操作,例如复制文件、创建注册表项、安装驱动程序等。msi文件则使用windows installer提供的功能,通过一系列的安装动作和操作来完成安装过程。这包括执行预定义的安装脚本、处理文件和注册表项、创建快捷方式等。
- 高级功能:由于采用了windows installer技术,msi文件支持一些高级功能,例如安装时的自定义设置、升级和修补程序、回滚机制等。这些功能使得msi文件更适合在企业环境中进行软件分发和管理。
总的来说,exe文件更加灵活,适用于简单的安装过程,而msi文件提供了更强大和可定制的安装功能,适用于需要管理和分发的复杂软件。在选择使用哪种文件格式时,应根据具体的需求和情况进行评估。
分析
- spring官方发布spring boot 3.0.0 的时候告知了一些情况,java 17将成为未来的主流版本,所有的java ee api都需要迁移到jakarta ee上来。大部分用户需要修改import相关api的时候,要用jakarta替换javax。比如:原来引入
javax
.servlet.filter的地方,需要替换为jakarta
.servlet.filter - 进入springboot官网查看情况,发现在2023年11月24日,3.0以下的版本不再支持了。
解决
方案一:替换创建项目的源
我们只知道idea页面创建spring项目,其实是访问spring initializr去创建项目。故我们可以通过阿里云国服去间接创建spring项目。将https://start.spring.io/
或者http://start.springboot.io/
替换为 https://start.aliyun.com/
方案二:升级jdk版本
采用jdk17或者21版本,创建项目后,springboot的版本要改为3.0以下,在pom.xml中把java改为1.8,如下图。
1、下载jdk17,jdk官网
选择windows x64 installer下载即可。
2、安装jdk17
双击已下载的jdk17,进入安装界面,点击下一步 ==> 选择安装路径,可更改路径,点击更改,我选择安装在e盘
,点击确定 == > 点击下一步进行安装。安装完成后直接点击关闭即可。
3、配置java环境变量
方式一:点击开始设置 ==> 搜索环境变量
方式二:右击此电 ==> 属性 ==> 高级系统设置 ==>环境变量
在系统变量中找到ptah双击,进入path页面,添加jdk安装位置,新建,选择自己的安装jdk17位置如下图
4、验证是否配置成功
win+r输入cmd回车,输入java -version和javac -version,均返回jdk版本,如下图
发表评论