IDEA2023版本创建Spring项目只能勾选17和21却无法使用Java8的完美解决方案

 更新时间:2023年12月18日 11:46:15   作者:wisdom_zhe  
想创建一个springboot的项目,本地安装的是1.8,但是在使用Spring Initializr创建项目时,发现版本只有17和21,这篇文章主要介绍了IDEA2023版本创建Sping项目只能勾选17和21,却无法使用Java8的解决方法,需要的朋友可以参考下

前言

起因

想创建一个springboot的项目,本地安装的是1.8,但是在使用Spring Initializr创建项目时,发现版本只有17和21。

在这里插入图片描述

在JDK为1.8的情况下,无论选择Java17版本或者21版本时,都会报错。
要求你要么选择更低的Java版本或者更换更高的SDK版本即跟换JDK版本

在这里插入图片描述

Java17和Java 8(JDK1.8)的区别

版本号: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的区别

"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版本,如下图

在这里插入图片描述

参考文献

jdk17下载及环境变量配置

exe和msi的区别 

到此这篇关于IDEA2023版本创建Spring项目只能勾选17和21,却无法使用Java8?(已解决)的文章就介绍到这了,更多相关idea2023创建Spring项目只能勾选17和21内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Idea之没有网络的情况下创建SpringBoot项目的方法实现

    Idea之没有网络的情况下创建SpringBoot项目的方法实现

    本文主要介绍了Idea之没有网络的情况下创建SpringBoot项目的方法实现,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-09-09
  • SpringBoot实现单点登录的实现详解

    SpringBoot实现单点登录的实现详解

    在现代的Web应用程序中,单点登录(Single Sign-On)已经变得越来越流行,在本文中,我们将使用Spring Boot构建一个基本的单点登录系统,需要的可以参考一下
    2023-05-05
  • IDEA与MyEclipse代码量统计方式

    IDEA与MyEclipse代码量统计方式

    文章介绍在项目中不安装第三方工具统计代码行数的方法,分别说明MyEclipse通过正则搜索(排除空行和注释)及IDEA使用Statistic插件或调整搜索设置(修改ide.usages.page.size)的两种操作方式,并强调需根据需求灵活选择
    2025-08-08
  • 使用Netty解决TCP粘包和拆包问题过程详解

    使用Netty解决TCP粘包和拆包问题过程详解

    这篇文章主要介绍了使用Netty解决TCP粘包和拆包问题过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • IntelliJ Plugin 开发之添加第三方jar的示例代码

    IntelliJ Plugin 开发之添加第三方jar的示例代码

    这篇文章主要介绍了IntelliJ Plugin 开发之添加第三方jar的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • 在 Java 中将Object 转换为 Int的四种方法

    在 Java 中将Object 转换为 Int的四种方法

    这篇文章主要介绍了在Java中如何将 Object 转换为Int,本文研究了在 Java中将Object转换为int的四种不同方法,结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-05-05
  • jsp、struts、spring、mybatis实现前端页面功能模块化拆分的方案

    jsp、struts、spring、mybatis实现前端页面功能模块化拆分的方案

    这篇文章主要介绍了 jsp、struts、spring、mybatis实现前端页面功能模块化拆分的方案,非常不错,需要的朋友参考下
    2017-01-01
  • 在IDEA中实现生成Maven依赖关系图

    在IDEA中实现生成Maven依赖关系图

    这篇文章主要介绍了在IDEA中实现生成Maven依赖关系图方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • 一文详解Java常用包有哪些

    一文详解Java常用包有哪些

    包是Java语言提供的一种确保类名唯一性的机制,是类的一种组织和管理方式、是一组功能相似或相关的类或接口的集合,这篇文章主要介绍了Java常用包有哪些的相关资料,需要的朋友可以参考下
    2025-11-11
  • java 通过聚合查询实现elasticsearch的group by后的数量

    java 通过聚合查询实现elasticsearch的group by后的数量

    这篇文章主要介绍了java 通过聚合查询实现elasticsearch的group by后的数量,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12

最新评论