【问题标题】:outOfMemoryError while gradle buildgradle构建时出现outOfMemoryError
【发布时间】:2025-12-08 03:00:02
【问题描述】:

我在使用 gradle 构建项目时遇到了内存错误。我已经尝试了 * 中存在的许多解决方案,但没有任何帮助。请在堆栈跟踪下方找到

java.lang.OutOfMemoryError: Java heap space
        at com.sun.tools.javac.util.ByteBuffer.<init>(ByteBuffer.java:45)
        at com.sun.tools.javac.jvm.ClassWriter.<init>(ClassWriter.java:101)
        at com.sun.tools.javac.jvm.ClassWriter.instance(ClassWriter.java:145)
        at com.sun.tools.javac.main.JavaCompiler.<init>(JavaCompiler.java:295)
        at com.sun.tools.javac.main.JavaCompiler.instance(JavaCompiler.java:72)
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.contextForNextRound(JavacProc
        at com.sun.tools.javac.processing.JavacProcessingEnvironment.doProcessing(JavacProcessingE
        at com.sun.tools.javac.main.JavaCompiler.processAnnotations(JavaCompiler.java:981)
        at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727)
        at com.sun.tools.javac.main.Main.compile(Main.java:353)
        at com.sun.tools.javac.api.JavacTaskImpl.call(JavacTaskImpl.java:115)
        at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:45)
        at org.gradle.api.internal.tasks.compile.JdkJavaCompiler.execute(JdkJavaCompiler.java:33)

我已经尝试了一些解决方案,比如在 gradlew 文件中添加以下行。

GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\" \"-Xmx1024m\" \"-Xms256m\" \"-XX:MaxPermSize=1024m\""

请帮我解决这个问题。提前致谢。

【问题讨论】:

  • 试试-Xms1024m,你的gradle能编译吗?是否会抛出内存不足提示?
  • 有一个ejb项目,gradle在编译这个项目时总是失败但是eclipse中没有编译时错误。

标签: java gradle build build-tools


【解决方案1】:

最大堆和最大永久大小配置为1G,这会给你带来麻烦。

1G 的永久代大小从 1G 总堆中分配(总堆的 100% 分配给永久代)。把永久代大小减到128M再试试。

如下所示更新 GRADLE_OPTS。

-XX:MaxPermSize=128m

【讨论】:

    最近更新 更多