执行gradlew genEclipseRuns搭建Minecraft模组工作区报JVM堆内存不足错误
故障根因
报错本质是当前Gradle调用的是32位版本JDK,32位JVM受内存寻址限制,最多仅能分配约1.4G~1.6G的连续内存作为对象堆,当前启动参数要求预留3GB(即报错里的3145728KB)堆内存,远超32位JVM的上限,直接导致VM初始化失败,无法启动Gradle Daemon进程。
从错误日志里的进程命令行可以直接定位问题:调用的Java程序位于
C:\Program Files (x86)\Java\jdk1.8.0_202\bin\java.exe,带(x86)标识的Program Files目录是系统专门存放32位程序的路径。
解决步骤
- 卸载当前安装的32位JDK1.8,下载安装64位版本的JDK8(Forge 1.17之前的Minecraft模组开发环境必须依赖JDK8,不要使用高版本JDK避免兼容性问题),安装时选择非x86的Program Files目录作为安装路径即可。
- 配置系统环境变量:新增
JAVA_HOME系统变量,值填写64位JDK8的安装根目录;再编辑系统Path变量,把%JAVA_HOME%\bin条目移到Path列表最顶部,避免系统优先调用旧的32位Java。 - 打开新的命令行窗口执行
java -version校验配置,输出内容不包含32-Bit、x86相关标识即代表64位Java配置生效。 - 如果设备总内存小于8G,3G堆内存配置依然可能触发内存不足问题,此时打开项目根目录下的
gradle.properties文件,找到org.gradle.jvmargs=-Xmx3G配置项,把3G改成2G保存,再重新执行gradlew genEclipseRuns命令即可正常生成Eclipse运行配置。
内容的提问来源于stack exchange,提问作者Christian Phillips
相关产品推荐
相关产品推荐

