Как я могу дать компилятору 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

Что мне не хватает?

Ответ 1

Settings (Предпочтения на Mac) | Compiler | Java Compiler | Максимальный размер кучи (МБ).

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

Ответ 2

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

введите описание изображения здесь

Ответ 3

GWT в Intellij 12

FWIW, я получал аналогичную ошибку с моим приложением GWT во время 'Build | Перестроить проект ".

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

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

Кроме того, в этом месте также есть параметр Максимальный размер кучи компилятора.

Ответ 4

В моем случае ошибка была вызвана недостаточной памятью, выделенной для "тестового" жизненного цикла 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, в этом случае).

Если ваши тесты разветвлены, они запускаются в новой JVM, которая не наследует опции Maven JVM. Пользовательские параметры памяти должны быть предоставлены через тестовый бегун в pom.xml, см. Документацию Maven для получения подробной информации, это очень мало связано с IDE.

Ответ 5

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

введите описание изображения здесь

Ответ 6

Существует

idea64.exe

стартер в

IntelliJ IDEA 13.1.5\bin

чтобы вы могли найти больше места.