我怎样才能给Intellij编译器更多的堆空间?

当我做一个Intellij项目,我不断收到以下内存错误。

我已经在idea.vmoptions增加了我的堆大小:

 -Xms128m -Xmx2048m -XX:MaxPermSize=1024m -XX:ReservedCodeCacheSize=64m -ea 

但是我仍然得到这个错误:

 Information:The system is out of resources. Information:Consult the following stack trace for details. Information:java.lang.OutOfMemoryError: Java heap space Information: at com.sun.tools.javac.util.Position$LineMapImpl.build(Position.java:139) Information: at com.sun.tools.javac.util.Position.makeLineMap(Position.java:63) Information: at com.sun.tools.javac.parser.Scanner.getLineMap(Scanner.java:1105) Information: at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:512) Information: at com.sun.tools.javac.main.JavaCompiler.parse(JavaCompiler.java:550) Information: at com.sun.tools.javac.main.JavaCompiler.parseFiles(JavaCompiler.java:804) Information: at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:727) Information: at com.sun.tools.javac.main.Main.compile(Main.java:353) Information: at com.sun.tools.javac.main.Main.compile(Main.java:279) Information: at com.sun.tools.javac.main.Main.compile(Main.java:270) Information: at com.sun.tools.javac.Main.compile(Main.java:69) Information: at com.sun.tools.javac.Main.main(Main.java:54) Information: at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) Information: at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) Information: at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) Information: at java.lang.reflect.Method.invoke(Method.java:597) Information: at com.intellij.rt.compiler.JavacRunner.main(JavacRunner.java:71) Information:Compilation completed with 1 error and 0 warnings Information:1 error Information:0 warnings Error:Compiler internal error. Process terminated with exit code 3 

我错过了什么?

Settings (Mac上的首选项)| Compiler | Java Compiler | 最大堆大小(MB)

编译器默认在单独的JVM中运行,所以您在idea.vmoptions中设置的IDEA堆设置对编译器没有影响。

从IntelliJ 2016开始,位置是File | 设置| 构build,执行,部署| 编译器| 构build进程堆大小

在这里输入图像说明

GWT在Intellij 12

FWIW,在“ Build |”期间,我的GWT应用程序出现类似的错误 重build项目 “。

这是因为Intellij做了一个我不喜欢的完整的GWT编译,因为它也是一个非常漫长的过程。

我通过closures“ 项目结构 ”下的模块checkbox来禁用GWT编译 方面| GWT '。

或者,在该位置还有一个“ 编译器最大堆大小 ”设置。

在我的情况下,错误是由分配给maven的“testing”生命周期的内存不足造成的。 它通过添加<argLine>-Xms3512m -Xmx3512m</argLine><argLine>-Xms3512m -Xmx3512m</argLine>

 <pluginManagement> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.16</version> <configuration> <argLine>-Xms3512m -Xmx3512m</argLine> 

感谢@crazycoder指出了这一点(而且这与IntelliJ无关;在这种情况下)。

如果你的testing是分叉的,它们运行在一个新的JVM中,它不会inheritanceMaven JVM选项。 自定义内存选项必须通过pom.xml中的testing运行器提供,请参阅Maven文档以获取详细信息,但与IDE无关。

我有一个类似的问题与Ant构build(由IDEA GUI手工启动)。 在我的情况下,有正确的解决scheme右键单击Ant任务,select属性,并设置一个较高的值为“最大堆空间(Mb):”和“最大堆栈空间(Mb):”input字段。

在这里输入图像说明

有一个

idea64.exe

首发

IntelliJ IDEA 13.1.5 \ bin

所以你可以解决更多的空间。