Gradle构建Java项目前需确保Java环境正确安装并被识别,其依赖JVM运行且对Java版本有严格要求;不同Gradle版本支持的Java版本不同,如Gradle 8.0+要求Java 17+,低版本不兼容高Java版本;必须通过JAVA_HOME明确指定JDK路径,而非依赖PATH;验证需交叉检查java -version、JAVA_HOME及gradle --version输出的JVM版本一致;IDE中还需单独配置Project SDK和Gradle JVM,避免命令行与IDE构建行为不一致。
使用Gradle构建Java项目前,必须确保Java环境已正确安装并被Gradle识别——Gradle本身是用Java编写的,它依赖JVM运行,且对Java版本有明确要求。
Gradle不是“兼容所有Java版本”,不同Gradle版本支持的最低和推荐Java版本不同。例如:
若Java版本过低(如用Java 8跑Gradle 8.x),执行gradle --version会直接报错:Unsupported class file major version;若过高(如用Java 21跑较老Gradle),可能触发警告或部分插件失效。建议查阅Gradle官方兼容性说明,按项目选用的Gradle版本反推所需Java版本。
Gradle通过JAVA_HOME环境变量定位JDK。它不会自动读取PATH中的java命令路径,必须显式设置。
echo $JAVA_HOME(Linux/macOS)或echo %JAVA_HOME%(Windows),确认是否已设置export JAVA_HOME=/usr/lib/jvm/java-17-openjdk$env:JAVA_HOME="C:\Program Files\Java\jdk-17"
~/.bashrc或~/.zshrc)或系统环境变量,确保新终端也生效配置完成后,运行以下命令交叉验证:
java -version:查看当前java命令对应的JDK版本echo $JAVA_HOME(或对应Windows命令):确认环境变量指向目标JDKgradle --version:输出Gradle版本、Groovy、Kotlin及Java版本——最后一行JVM: X.X (Vendor)即Gradle实际使用的Java,必须与预期一致若gradle --version显示的Java版本与java -version不一致,说明Gradle启动时未读取你设置的JAVA_HOME,常见原因是:Shell配置未重载、IDE内嵌终端未继承环境变量、或CI脚本中遗漏export JAVA_HOME。
即使终端中Gradle运行正常,IDE可能使用内置或独立配置的JDK,导致构建行为不一致:
JAVA_HOME一致的JDK这些配置不匹配,可能导致IDE内编译成功但命令行./gradlew build失败,或反之。