Intellij idea 如何给Intellij编译器更多的堆空间?
当我做一个Intellij项目时,我总是遇到以下内存不足错误 我已经在Intellij idea 如何给Intellij编译器更多的堆空间?,intellij-idea,Intellij Idea,当我做一个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. I
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
我缺少什么?当前版本:
设置
(首选项
在Mac上)|构建、执行、部署
|编译器
|
生成进程堆大小
旧版本:
设置
(首选项
在Mac上)|编译器
|Java编译器
|最大堆大小
默认情况下,编译器在单独的JVM中运行,因此您在
IDEA.vmoptions
中设置的IDEA堆设置对编译器没有影响。Intellij 12中的GWT
FWIW,在“构建|重建项目”期间,我的GWT应用程序遇到了类似的错误
这是由Intellij进行完整的GWT编译造成的,我不喜欢这样做,因为这也是一个非常漫长的过程
我通过关闭“项目结构|方面| GWT”下的模块复选框禁用了GWT编译
或者,在该位置也有一个“编译器最大堆大小”设置。在我的例子中,错误是由于分配给maven的“测试”生命周期的内存不足造成的。通过将
-Xms3512m-Xmx3512m
添加到:
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.16</version>
<configuration>
<argLine>-Xms3512m -Xmx3512m</argLine>
org.apache.maven.plugins
maven surefire插件
2.16
-Xms3512m-Xmx3512m
感谢@crazycoder指出这一点(在本例中,它与IntelliJ无关)
如果您的测试是分叉的,那么它们将在一个新的JVM中运行,该JVM不继承Maven JVM选项。自定义内存选项必须通过pom.xml中的测试运行程序提供,有关详细信息,请参阅Maven文档,它与IDE关系不大
有一个
idea64.exe
起动器
IntelliJ IDEA 13.1.5\bin
因此,您可以处理更多的空间。自IntelliJ 2016以来,位置是文件|设置|构建、执行、部署|编译器|构建进程堆大小
我在Ant build(从IDEA GUI手动启动)方面也遇到了类似的问题。在我的例子中,正确的解决方案是右键单击Ant任务,选择properties并将更高的值设置为“最大堆空间(Mb):”和“最大堆栈空间(Mb):”输入字段
要解决此问题,请执行以下给定步骤- 1) 。在inteli中,转到文件>设置选项,并在导入器给定值-Xmx512m的Vm选项字段中搜索Vm选项。 2) 。转到控制面板选择查看方式:大图标然后转到Java一个promp窗口将显示名称Java控制面板然后转到Java 选择查看选项。 在Java运行时环境中,将传递运行时参数设置为-Xmx1024m 3) 。如果上面给出的选项不起作用,那么请更改pom.xml的大小。在使用maven安装命令构建项目时,我遇到了“java.lang.OutOfMemoryError:java heap space”错误 我可以通过改变maven runner的设置来摆脱它
设置
|构建、执行、部署
|构建工具
|Maven
|运行者
|虚拟机选项
到-Xmx512m我想分享我的一个启示。当您构建项目时,Intellij Idea运行一个驻留在其核心中的java进程(例如:C:\Program Files\JetBrains\Intellij Idea 2020.3\jbr\bin)。正如许多其他人提到的,“构建进程堆大小”改变了这个java进程的堆大小。但是,主java进程稍后由Idea的java进程触发,因此具有不同的VM参数。我注意到这个进程的最大堆大小是Idea java进程的1/3,而最小堆是最大值的一半(1/6)。总结:
当您在“构建进程堆大小”上设置9g堆时,编译器的实际堆大小最大为3g,最小为1,5g。无需重新启动
PS:在2020.3版上进行了测试,之后需要重新启动:)我知道这有点离题,但如果有人遇到这个问题,可能会省去一些麻烦。我也有同样的问题,但我的问题源于我在IntelliJ中进行
mvn安装时。解决方案是修改设置| Maven | Runner |**虚拟机选项**
我必须尝试那里的所有其他设置,直到我正确设置为止。希望它能帮助别人。我可以找到它,直到“最大堆大小”我必须将它添加为额外的命令行参数吗?@clankill3r try设置编译器构建进程堆大小。对于Intellij的最新版本(我的是2016.1.3),此参数称为“构建进程堆大小(MB)”可以在“设置|构建、执行、部署|编译器”中找到。这个答案在某种程度上是正确的,尽管不是在上述问题的上下文中。idea64.exe确实为您提供了更多的永久内存,如果您使用的是64位操作系统,请使用idea64.exe。发现它很有用,因为32位idea.exe在构建期间内存不足时崩溃。为什么要删除该链接?你害怕发生了什么事吗?我已经给出了正确的答案,我给了另一个网站评分,但我仍然可以看到两张反对票。我给出的答案实际上是正确的,我已经面对并解决了这个问题。请让我知道我是否可以给另一个网站评分。那个暂时的反对票是我投的。如果你想给学分,请链接到你找到信息的确切页面,而不是教程列表。我将其更改为2000 MB,但它仍然不适用于我。