IntelliJ创建Java 8版Spring Boot项目遇问题求助
问题根源
你遇到的class file has wrong version 61.0, should be 52.0错误,核心原因是Spring Boot 3.x(你的父pom版本是3.2.2)最低要求Java 17,而Java 8只能搭配Spring Boot 2.x版本使用。即便手动指定了部分依赖为2.6.4,父pom的3.x版本仍会自动引入大量高版本Spring依赖(比如spring-web 6.1.3),这些依赖是用Java 17编译的,无法在Java 8环境下运行。
具体修复步骤
替换Spring Boot父版本为2.x稳定版
将pom.xml中<parent>节点的版本改为2.x系列(推荐2.7.18,是2.x的最后一个GA版本,兼容Java 8),同时删除所有Spring Boot starter依赖中的<version>标签——父pom会自动统一管理版本,避免冲突。清理重复依赖
你的pom里重复引入了spring-boot-starter-data-jpa(一个2.6.4,一个2.1.4.RELEASE),删掉旧的2.1.4.RELEASE版本的依赖。修正IntelliJ的Java版本配置
- 打开
File > Project Structure - 在
Project Settings > Project中,将SDK和Language level都设为Java 8 - 在
Project Settings > Modules中,确保每个模块的Language level也为Java 8
- 打开
清理Maven缓存
执行命令清理本地仓库的旧依赖:mvn clean install -U也可以手动删除本地M2仓库中
org/springframework下的3.x版本目录。
修正后的完整pom.xml示例
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.7.18</version> <!-- 替换为Spring Boot 2.x稳定版 --> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.example</groupId> <artifactId>test</artifactId> <version>0.0.1-SNAPSHOT</version> <name>test</name> <description>test</description> <properties> <java.version>1.8</java.version> <!-- Spring Boot父pom会自动管理maven-compiler-plugin的source/target,无需单独配置 --> </properties> <dependencies> <!-- Spring Boot Starter --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <!-- Spring Boot Starter Web --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- Spring Boot Starter Data JPA --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> <!-- 保持你需要的版本,或由父pom管理 --> </dependency> <!-- Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <scope>provided</scope> </dependency> <!-- Spring Boot DevTools --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency> <!-- Spring Boot Starter Test --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- H2数据库 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <scope>runtime</scope> <version>1.4.199</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> </project>
额外说明
如果想直接创建Java 8的Spring Boot项目,在IntelliJ的Spring Initializr界面中,点击Custom选项,手动选择Spring Boot版本为2.x,就能看到Java 8的选项了。
内容的提问来源于stack exchange,提问作者nas gr

