Как я могу дать компилятору Intellij больше места в куче?

106

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

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

Майкл
источник

Ответы:

157

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

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

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

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

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

CrazyCoder
источник
10
А потом потребуется перезагрузка :)
cgl
9
На самом деле это не так
jarandaf
11
Я знаю, что это немного не по теме, но может сэкономить кому-то волосы, если они столкнутся с этим. У меня была такая же проблема, но моя возникла из-за того, что я делал mvn installв IntelliJ. Решение состояло в том, чтобы изменить Settings | Maven | Runner | **VM Options** настройки. Я, должно быть, пробовал все остальные настройки, пока не понял, что это правильно. Надеюсь, это кому-то поможет.
FuriousGeorge
14
@ clankill3r попробуйте Settings| Compiler| Build process heap size.
CrazyCoder
5
Для более поздних версий Intellij (у меня 2016.1.3) этот параметр называется «Размер кучи процесса сборки (Мбайты)» и его можно найти в «Настройки | Сборка, Выполнение, Развертывание | Компилятор».
Tomger
95

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

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

Подбородок
источник
2
Я изменил его на 2000 МБ, но у меня все равно не получилось.
R11G
5

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

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

Ян Немец
источник
5

Чтобы решить эту проблему, выполните следующие действия:

1). В inteli выберите «Файл»> «Параметры настройки» и найдите параметр «Vm». В поле «Параметр Vm для импортера» укажите значение -Xmx512m. Параметры настройки Intelij

2). Перейдите в панель управления Выберите вид: большие значки, затем перейдите к Java, появится одно окно подсказки с именем java control pannel, затем перейдите в java Параметры виртуальной машины Java

выберите вариант просмотра. параметры просмотра Java

В Java Run time Environment Setting pass Параметры времени выполнения как -Xmx1024m .

3). Если указанные выше параметры не работают, измените размер pom.xml

Джимми Тен
источник
Почему вы удалили эту ссылку? Вы боитесь того, что здесь произошло ?
Glorfindel
Я дал правильный ответ, и я дал кредит другому веб-сайту, но все же вижу два отрицательных ответа на свой ответ. и ответ, который я дал, практически правильный, с чем я столкнулся и решил его.
Jimy Ten
пожалуйста, дайте мне знать, могу ли я отдать должное другому веб-сайту.
Jimy Ten
2
Это временное отрицательное голосование было от меня. Если вы хотите отдать должное, дайте ссылку на ту страницу, на которой вы нашли информацию, а не на список руководств.
Frenzy Li
3

GWT в Intellij 12

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

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

Я отключил компиляцию 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).

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

Нил
источник
0

Я столкнулся с ошибкой «java.lang.OutOfMemoryError: Java heap space» при сборке моего проекта с помощью команды установки maven.

Я смог избавиться от этого, изменив настройки бегуна maven.

Settings| Build, Execution, Deployment| Build Tools| Maven| Runner| VM optionsдо -Xmx512m

Джейсон
источник
-3

Eсть

idea64.exe

стартер в

IntelliJ IDEA 13.1.5 \ bin

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

Джулиан Дене
источник
Этот ответ в некоторой степени правильный, хотя и не в контексте вопроса выше. idea64.exe действительно дает вам больше памяти для перманента, используйте idea64.exe, если у вас 64-битная ОС. Считал полезным, потому что 32-битный файл idea.exe вылетал из-за нехватки памяти во время сборки.
Адиль Х. Раза