169 lines
4.2 KiB
Plaintext
169 lines
4.2 KiB
Plaintext
====================================
|
||
Java版本不兼容问题 - 解决指南
|
||
====================================
|
||
|
||
问题症状:
|
||
-----------
|
||
启动后端时出现错误:
|
||
"class file version 61.0, this version of the Java Runtime only recognizes class file versions up to 52.0"
|
||
|
||
原因分析:
|
||
-----------
|
||
- Spring Boot 3.2.0 需要 Java 17+
|
||
- 您当前使用的是 Java 8
|
||
- 版本不匹配导致无法运行
|
||
|
||
====================================
|
||
解决方案一:升级Java到17(推荐)
|
||
====================================
|
||
|
||
为什么推荐?
|
||
-----------
|
||
✓ 使用最新技术栈
|
||
✓ 更好的性能
|
||
✓ 更多新特性
|
||
✓ 长期支持版本
|
||
|
||
步骤:
|
||
------
|
||
|
||
1. 下载 Java 17
|
||
推荐下载地址:
|
||
- Oracle JDK 17: https://www.oracle.com/java/technologies/downloads/#java17
|
||
- Eclipse Temurin 17: https://adoptium.net/temurin/releases/?version=17
|
||
|
||
选择 Windows x64 Installer (.msi)
|
||
|
||
2. 安装 Java 17
|
||
- 双击下载的安装程序
|
||
- 按默认选项安装(推荐路径:C:\Program Files\Java\jdk-17)
|
||
- 记住安装路径
|
||
|
||
3. 配置环境变量
|
||
|
||
方法A - 使用图形界面:
|
||
a) 右键"此电脑" -> "属性" -> "高级系统设置"
|
||
b) 点击"环境变量"
|
||
c) 在"系统变量"中:
|
||
- 如果有JAVA_HOME,修改它:
|
||
变量值改为:C:\Program Files\Java\jdk-17
|
||
- 如果没有,新建JAVA_HOME:
|
||
变量名:JAVA_HOME
|
||
变量值:C:\Program Files\Java\jdk-17
|
||
d) 编辑Path变量:
|
||
- 找到旧的Java路径(如果有),删除或移到底部
|
||
- 在最前面添加:%JAVA_HOME%\bin
|
||
e) 点击"确定"保存
|
||
|
||
方法B - 使用命令行(管理员权限):
|
||
setx JAVA_HOME "C:\Program Files\Java\jdk-17" /M
|
||
|
||
4. 验证安装
|
||
|
||
打开新的命令行窗口(必须是新窗口!),执行:
|
||
|
||
java -version
|
||
|
||
应该显示:
|
||
openjdk version "17.x.x"
|
||
或
|
||
java version "17.x.x"
|
||
|
||
5. 重新启动项目
|
||
|
||
cd d:\SoftwarePrj\文献流程\backend
|
||
mvn clean spring-boot:run
|
||
|
||
====================================
|
||
解决方案二:降级到Spring Boot 2.7
|
||
====================================
|
||
|
||
为什么选择?
|
||
-----------
|
||
✓ 可以继续使用 Java 8
|
||
✓ 无需升级Java
|
||
✗ 无法使用Spring Boot 3的新特性
|
||
|
||
步骤:
|
||
------
|
||
|
||
1. 备份原配置文件
|
||
copy backend\pom.xml backend\pom-backup.xml
|
||
|
||
2. 使用Java 8兼容的配置
|
||
copy backend\pom-java8.xml backend\pom.xml
|
||
|
||
3. 清理并重新编译
|
||
cd backend
|
||
mvn clean install
|
||
|
||
4. 启动服务
|
||
mvn spring-boot:run
|
||
|
||
====================================
|
||
验证Java版本
|
||
====================================
|
||
|
||
检查当前Java版本:
|
||
------------------
|
||
java -version
|
||
javac -version
|
||
|
||
检查Maven使用的Java版本:
|
||
-------------------------
|
||
mvn -version
|
||
|
||
如果Maven使用的不是Java 17:
|
||
----------------------------
|
||
编辑 Maven 配置文件:
|
||
%MAVEN_HOME%\bin\mvn.cmd
|
||
|
||
或在项目根目录创建 .mvn/jvm.config 文件:
|
||
-Djava.home=C:\Program Files\Java\jdk-17
|
||
|
||
====================================
|
||
常见问题
|
||
====================================
|
||
|
||
Q1: 安装了Java 17但java -version仍显示Java 8
|
||
A1: 环境变量配置不正确或命令行窗口未重新打开
|
||
- 关闭所有命令行窗口
|
||
- 重新打开新窗口
|
||
- 再次检查 java -version
|
||
|
||
Q2: 有多个Java版本,如何切换?
|
||
A2: 修改JAVA_HOME环境变量指向目标版本
|
||
或使用工具如 jEnv (Linux/Mac) 或手动切换
|
||
|
||
Q3: Maven仍然使用旧版本Java
|
||
A3: 检查 MAVEN_OPTS 环境变量
|
||
或在项目中创建 .mvn/jvm.config
|
||
|
||
Q4: 降级到Spring Boot 2.7后出现新错误
|
||
A4: 某些代码可能使用了Spring Boot 3的API
|
||
需要根据具体错误调整代码
|
||
主要差异:
|
||
- javax.* -> jakarta.* (在Spring Boot 3中)
|
||
- 某些配置属性名称变化
|
||
|
||
====================================
|
||
推荐方案
|
||
====================================
|
||
|
||
对于新项目,强烈建议:
|
||
✓ 升级到 Java 17
|
||
✓ 使用 Spring Boot 3.x
|
||
✓ 享受最新特性和性能改进
|
||
|
||
Java 17 是长期支持版本(LTS),值得升级!
|
||
|
||
====================================
|
||
需要帮助?
|
||
====================================
|
||
|
||
1. 如选择方案一,下载安装Java 17后重新运行 start-dev.bat
|
||
2. 如选择方案二,按照步骤执行后重新运行
|
||
3. 查看完整文档:DEPLOYMENT.md
|
||
|
||
|