执行gradle dependencyUpdates时守护进程启动失败如何解决?
解决Gradle Daemon启动失败(Unrecognized VM option 'MaxPermSize=2048m')
问题根源
-XX:MaxPermSize=2048m是Java 8及更早版本的JVM参数,Java 9+已移除永久代(PermGen)、改用元空间(Metaspace),因此该参数在Java 11/17中不被识别。同时你的环境存在JDK版本不一致问题:本地默认Java是11.0.7,但Gradle启动Daemon时调用的是OpenJDK 17的路径。
解决方案
1. 移除无效的JVM参数
MaxPermSize参数通常来自以下位置,逐一检查并删除:
环境变量:
运行以下命令查看变量内容:echo $GRADLE_OPTS echo $JAVA_OPTS如果输出中包含
-XX:MaxPermSize=2048m,编辑你的shell配置文件(如~/.bashrc、~/.zshrc),删除该参数后重启终端。Gradle配置文件:
- 项目根目录下的
gradle.properties:找到org.gradle.jvmargs行,移除其中的-XX:MaxPermSize=2048m - 用户全局配置
~/.gradle/gradle.properties(Mac/Linux)或C:\Users\<用户名>\.gradle\gradle.properties(Windows):同样检查并删除该参数
- 项目根目录下的
2. 统一Gradle使用的JDK版本
确保Gradle使用的JDK与你本地默认的Java 11一致:
在项目根目录的
gradle.properties中添加:org.gradle.java.home=/path/to/your/adoptopenjdk11替换为你实际的Java 11安装路径(例如
/Library/Java/JavaVirtualMachines/adoptopenjdk-11.jdk/Contents/Home)或者设置环境变量
JAVA_HOME为Java 11的路径,重启终端后再运行Gradle命令。
3. 验证修复
运行以下命令测试:
gradle dependencyUpdates
内容的提问来源于stack exchange,提问作者Tanu
相关产品推荐
相关产品推荐

