You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Gradle分配内存不足:Forge 1.16.5模组开发内存溢出问题

Forge 1.16.5模组开发runClient内存溢出问题解决

问题情况

  • 开发环境:IntelliJ Idea + Gradle + Minecraft Forge 1.16.5
  • 初始故障:执行runClient任务时,Gradle仅分配257MB堆内存,直接触发堆内存溢出:
    [15:59:07] [Render thread/FATAL] [minecraft/Minecraft]: 内存不足
    java.lang.OutOfMemoryError: Java堆空间
    
  • 添加jvmArgs "-Xms2g", "-Xmx2g"到build.gradle后,任务执行失败:
    Execution failed for task ':runClient'.
    > 进程 'command 'C:\Program Files (x86)\Java\jdk1.8.0_202\bin\java.exe'' 以非零退出值1结束
    
  • 尝试分配1G内存时,仍出现内存相关错误:
    java.io.IOException: 无法加载图像:内存不足
    java.lang.IllegalStateException: 图像未分配。
    

解决方法

1. 正确配置Forge运行任务的JVM参数

Forge 1.16.5对应的Gradle版本对runClient的参数配置有特定要求,直接加jvmArgs容易冲突,建议用以下方式配置:

// 在build.gradle中添加
tasks.withType(JavaExec) {
    if (name in ['runClient', 'runServer']) {
        jvmArgs = [
                '-Xms2G',
                '-Xmx4G',
                '-XX:+UseG1GC',
                '-XX:MaxGCPauseMillis=200',
                '-Dfml.ignoreInvalidMinecraftCertificates=true',
                '-Dfml.ignorePatchDiscrepancies=true'
        ]
    }
}

或者单独配置runClient任务:

runClient {
    jvmArgs += [
            '-Xms2G',
            '-Xmx4G',
            '-XX:+UseConcMarkSweepGC' // Java 8适配的垃圾回收器
    ]
}

2. 更换64位Java 8 JDK

你当前使用的是32位Java 8(路径带Program Files (x86)),32位Java的最大堆内存上限通常不超过1.5G,强行分配2G会导致启动失败。

  • 卸载32位JDK,安装Java 8 64位版本
  • 在IntelliJ中切换项目SDK:
    1. 打开文件 > 项目结构 > 项目设置 > 项目
    2. 将项目SDK切换为已安装的64位Java 8
    3. 同步Gradle项目

3. 调整IntelliJ的Gradle自身内存

Gradle自身内存不足也会影响任务执行,可调整其VM参数:

  1. 打开文件 > 设置 > 构建、执行、部署 > 构建工具 > Gradle
  2. 在Gradle VM选项中输入:-Xms1G -Xmx2G
  3. 保存设置

4. 清理缓存重新构建

  • 执行Gradle的clean任务,清除旧构建文件
  • 重启IntelliJ,重新同步Gradle项目
  • 再次运行runClient任务

内容的提问来源于stack exchange,提问作者Gavin Justakid_Abu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 12:09:58