当我创建一个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
我错过了什么?
答案 0 :(得分:124)
当前版本:
Settings
(Mac上为Preferences
)| Build, Execution, Deployment
| Compiler
|
构建流程堆大小。
旧版本:
Settings
(Mac上为Preferences
)| Compiler
| Java Compiler
| 最大堆大小。
默认情况下,编译器在单独的JVM中运行,因此您在idea.vmoptions
中设置的IDEA堆设置对编译器没有影响。
答案 1 :(得分:80)
答案 2 :(得分:3)
Intellij 12中的GWT
FWIW,我在' Build |期间遇到了与我的GWT应用程序类似的错误重建项目'。
这是由Intellij进行完整的GWT编译引起的,我不喜欢这样做,因为它也是一个非常漫长的过程。
我通过关闭' 项目结构|下的模块复选框来禁用GWT编译方面| GWT 强>”。
此外,该位置还有一个“编译器最大堆大小”设置。
答案 3 :(得分:2)
我在Ant构建方面遇到了类似的问题(从IDEA GUI手动启动)。在我的例子中,右键单击Ant任务是正确的解决方案,选择属性并将更高的值设置为"最大堆空间(Mb):"和"最大堆栈空间(Mb):"输入字段。
答案 4 :(得分:2)
要解决此问题,请执行以下给定步骤-
1)。在inteli中,转到“文件”>“设置选项”并搜索“ Vm选项”。在“进口商的Vm选项”字段中,输入-Xmx512m。 Intelij Setting Options
2)。转到“控制面板”选择“查看方式:大图标”,然后转到“ Java”,一个提示窗口将出现,名称为 java control pannel ,然后转到Java Java VM Options
选择查看选项。 java view options
在Java运行时环境中,将传递运行时参数设置为 -Xmx1024m 。
3)。如果以上给定的选项不起作用,则更改pom.xml的大小
答案 5 :(得分:1)
在使用maven安装命令构建项目时,我遇到“ java.lang.OutOfMemoryError:Java堆空间”错误。
我能够通过更改Maven跑步者设置来摆脱它。
Settings
| Build, Execution, Deployment
| Build Tools
| Maven
| Runner
| VM options
到 -Xmx512m
答案 6 :(得分:0)
在我的情况下,错误是由分配给maven的“测试”生命周期的内存不足引起的。通过将<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无关;在这种情况下)。
如果您的测试是分叉的,它们将在不继承Maven JVM选项的新JVM中运行。必须通过pom.xml中的测试运行器提供自定义内存选项,有关详细信息,请参阅Maven文档,它与IDE几乎没有关系。
答案 7 :(得分:0)
我喜欢分享我的一个启示。当您构建项目时,Intellij Idea 会运行一个驻留在其核心中的 Java 进程(例如:C:\Program Files\JetBrains\IntelliJ IDEA 2020.3\jbr\bin)。正如许多其他人所提到的,“构建进程堆大小”改变了这个 java 进程的堆大小。但是,主java进程稍后由Idea的java进程触发,因此具有不同的VM参数。我注意到这个进程的最大堆大小是 Idea 的 java 进程的 1/3,而最小堆是 max(1/6) 的一半。四舍五入:
当您在“构建进程堆大小”上设置 9g 堆时,编译器的实际堆大小最大为 3g,最小为 1.5g。并且不需要重启。
PS:在 2020.3 版本上测试
答案 8 :(得分:-3)
有一个
idea64.exe
启动器
IntelliJ IDEA 13.1.5 \ bin
这样你就可以占用更多空间。