./gradlew genSources执行报Java版本过低异常排查
故障原因
终端执行./gradlew genSource构建失败的核心原因:
- Minecraft 1.19版本配套的
fabric-loom0.12及以上版本强制要求Java 17及以上运行环境 - 系统终端执行Gradle命令时,会直接读取全局
JAVA_HOME环境变量定位Java运行时,当前该变量指向JDK 8安装路径,触发版本校验失败 - 你在IDEA的 File | Settings | Build, Execution, Deployment | Build Tools | Gradle 页面修改的Gradle JVM配置,仅对IDEA进程内部启动的Gradle任务生效,不会覆盖系统终端的全局环境变量配置,因此外部终端执行命令时该修改不生效。

解决方案
根据使用场景选择对应操作即可:
方案1:永久修改全局配置(推荐)
- 本地安装JDK 17
- 打开系统环境变量设置面板,找到系统变量列表中的
JAVA_HOME项,将原有JDK 8的路径值替换为JDK 17的安装根目录路径 - 关闭所有已打开的终端窗口,重新打开终端执行
java -version,确认输出版本为Java 17后,重新执行./gradlew genSource即可正常完成构建。
方案2:临时生效(无需改动全局配置)
如果不想修改全局JAVA_HOME,可以在执行构建命令的终端窗口中,先执行以下命令(将路径替换为你本地JDK 17的实际安装路径):
set JAVA_HOME=C:\Program Files\Eclipse Adoptium\jdk-17.0.xxx-hotspot\
配置仅对当前终端窗口生效,执行完成后在同一窗口内运行./gradlew genSource即可正常构建,关闭终端后配置自动失效。
仅在IDEA内运行构建的配置方法
如果不需要在外部终端执行命令,只通过IDEA触发Gradle任务:
- 打开 File | Project Structure | SDKs ,添加本地安装的JDK 17作为项目SDK
- 回到Gradle配置页,将Gradle JVM选择为刚才添加的JDK 17,之后直接通过IDEA右侧Gradle面板点击对应任务运行即可,无需修改全局环境变量。
内容的提问来源于stack exchange,提问作者cookies
相关产品推荐
相关产品推荐

