STS4.12.1导入Gradle项目提示Could not determine java version from '17'错误
问题根因
你使用的Gradle 6.8.3最高仅兼容到Java 16,不支持识别Java 17的版本号。从你提供的会话数据可以看出,当前STS 4.12.1本身是基于Java 17启动运行的,Gradle导入项目时默认会使用STS的运行JDK,因此触发了Could not determine java version from '17'报错。
解决方案
- 方案1:配置Gradle导入时使用Java 11(无需修改STS启动配置,推荐优先尝试)
- 打开STS偏好设置:依次点击顶部菜单栏
Window > Preferences - 在左侧导航栏找到
Gradle > Arguments选项 - 在「Java home」区域,选择你本地已安装的Java 11根目录,不要使用默认的STS运行JRE
- 点击
Apply and Close保存配置,重新执行项目导入操作即可
- 打开STS偏好设置:依次点击顶部菜单栏
- 方案2:修改STS启动JDK为Java 11
- 打开STS安装目录,找到对应Linux系统的启动配置文件
SpringToolSuite4.ini - 在文件的
-vmargs参数前,新增两行配置,替换为你本地Java 11的实际路径:-vm /path/to/your/jdk11/bin/java - 保存配置文件,重启STS后再导入项目
- 打开STS安装目录,找到对应Linux系统的启动配置文件
- 方案3:升级项目Gradle版本适配Java 17
如果你不想修改STS的配置,可将项目的Gradle Wrapper版本升级到7.3及以上(Gradle 7.3开始正式支持Java 17)。在项目根目录执行以下命令即可:
命令执行完成后重新导入项目。./gradlew wrapper --gradle-version 7.3.3
前置检查项
- 确认STS中已正确配置Java 11:在
Window > Preferences > Java > Installed JREs中能看到Java 11的条目,且已勾选启用 - 确认项目Gradle Wrapper版本为6.8.3:检查项目根目录下
gradle/wrapper/gradle-wrapper.properties中的distributionUrl参数值是否对应6.8.3版本
内容的提问来源于stack exchange,提问作者Nirodha Wickramarathna
相关产品推荐
相关产品推荐

