2011-12-20 4 views
54

Когда я делаю проект 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 

Что я упускаю?

ответ

75

Текущая версия:

Settings (Preferences на Mac) | Build, Execution, Deployment | Compiler | Размер кучи процесса сборки.

Старые версии:

Settings (Preferences на Mac) | Compiler | Java Compiler | Максимальный размер кучи.

Компилятор работает по отдельному JVM по умолчанию, поэтому настройки кучи IDEA, установленные вами в idea.vmoptions, не влияют на компилятор.

+6

И требуется перезагрузка после :) – cgl

+3

На самом деле это не – jarandaf

+5

я знаю, что это немного не по теме, но может спасти кого-то некоторые волосы, если они приходят через это. У меня была одна и та же проблема, но моя причина заключалась в том, что я делал «mvn install» в IntelliJ. Решение заключалось в том, чтобы изменить «Настройки | Maven | Бегун | ** Параметры VM ** 'Я, должно быть, пробовал все остальные настройки там, пока я не получил это право. Надеюсь, это поможет кому-то. – FuriousGeorge

3

GWT в Intellij 12

FWIW, я получаю подобную ошибку с моим приложением GWT во время 'Строить | Реконструкция проекта '.

Это было вызвано тем, что Intellij выполнил полный компилятор GWT, который мне не понравился, потому что это также очень длительный процесс.

I отключен GWT компилировать, выключив модуль флажки под 'Структура проекта | Границы | GWT '.

В качестве альтернативы имеется также «» Размер кучи компилятора »в этом месте.

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, в данном случае).

If your tests are forked, they run in a new JVM that doesn't inherit Maven JVM options. Custom memory options must be provided via the test runner in pom.xml, refer to Maven documentation for details, it has very little to do with the IDE.

-3

Существует

idea64.exe

стартер в

IntelliJ IDEA 13.1.5\bin

так что вы можете обратиться больше пространства.

+0

Этот ответ в некоторой степени правильный, хотя и не в контексте вопроса выше. idea64.exe действительно дает вам больше памяти permgen, используйте idea64.exe, если вы на 64-битной ОС. Нашел это полезным, потому что 32bit idea.exe рушился при выходе из памяти во время сборки. –

56

С IntelliJ 2016, местонахождение Файл | Настройки | Создание, выполнение, развертывание | Компилятор | Размер кучи процесса сборки.

enter image description here

1

У меня была аналогичная проблема с Ant сборки (запущенная вручную из графического интерфейса IDEA). В моем случае было правильным решением щелкнуть правой кнопкой мыши по заданию Ant, выбрать свойства и установить более высокое значение «Максимальное место кучи (Mb):» и «Максимальное пространство стека (Mb):« поля ввода ».

enter image description here

Смежные вопросы