Как я могу дать компилятору 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
Что мне не хватает?
11 ответов
Текущая версия:
Settings
(Preferences
на Mac) | Build, Execution, Deployment
| Compiler
|Размер кучи процесса сборки.
Старые версии:
Settings
(Preferences
на Mac) | Compiler
| Java Compiler
| Максимальный размер кучи.
По умолчанию компилятор работает в отдельной JVM, поэтому параметры кучи IDEA, заданные вами в idea.vmoptions
не влияет на компилятор.
Начиная с IntelliJ 2016, местоположение - Файл | Настройки | Сборка, выполнение, развертывание | Компилятор | Размер кучи процесса сборки.
Чтобы решить эту проблему, выполните следующие действия:
1). В Inteli перейдите в File> Setting Option и найдите Vm Option. В поле Vm Option для Importer укажите значение -Xmx512m. Параметры настройки Intelij
2). Перейти к панели управления Выберите Просмотр по: Большие значки, затем Перейти к Java Появится окно с одним приглашением с именем панели управления Java, затем перейдите к параметрам Java VM Java.
выберите опцию просмотра. Параметры просмотра Java
В Java Runtime Environment Настройка передачи Выполнить параметры времени как -Xmx1024m.
3). Если указанные выше параметры не работают, измените размер файла pom.xml.
У меня была похожая проблема со сборкой Ant (запущена вручную из IDEA GUI). В моем случае было правильное решение - щелкнуть правой кнопкой мыши задачу Ant, выбрать свойства и установить более высокие значения для полей ввода "Максимальное пространство кучи (Мб):" и "Максимальное пространство стека (Мб):".
GWT в Интеллий 12
FWIW, я получал похожую ошибку с моим приложением GWT во время ' Build | Перестроить проект ".
Это было вызвано тем, что Intellij сделал полную GWT-компиляцию, которая мне не понравилась, потому что это также очень длительный процесс.
Я отключил компиляцию GWT, сняв флажки модуля в разделе " Структура проекта | Грани | GWT '.
В качестве альтернативы в этом месте также есть настройка " Максимальный размер кучи компилятора".
Я столкнулся с ошибкой "java.lang.OutOfMemoryError: Java heap space" при сборке моего проекта с помощью команды установки maven.
Я смог избавиться от этого, изменив настройки бегуна maven.
Settings
| Build, Execution, Deployment
| Build Tools
| Maven
| Runner
| VM options
до -Xmx512m
В Android Studio 4.2 или более новой версии Arctic fox вы выберете параметр «Внешний вид и поведение».
- Windows: файл> настройки> внешний вид и поведение> системные настройки> настройки памяти.
- Mac: файл> настройки> внешний вид и поведение> системные настройки> настройки памяти.
https://stackru.com/images/650bcaa0eb81a0437908df271daa5fa3709ae998.png
В моем случае ошибка была вызвана нехваткой памяти, выделенной для "тестового" жизненного цикла 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.
Мне нравится делиться откровением, которое у меня было. Когда вы создаете проект, Intellij Idea запускает java-процесс, который находится в его ядре (например: C:\Program Files\JetBrains\IntelliJ IDEA 2020.3\jbr\bin). «Размер кучи процесса сборки», как упоминалось многими другими, изменяет размер кучи этого java-процесса. Однако основной java-процесс запускается позже java-процессом Idea, поэтому аргументы виртуальной машины разные. Я заметил, что максимальный размер кучи этого процесса составляет 1/3 от Java-процесса Idea, а минимальный размер кучи составляет половину от максимального (1/6). Чтобы округлить:
Когда вы устанавливаете кучу 9g на «размер кучи процесса сборки», фактический размер кучи для компилятора составляет максимум 3g и минимум 1,5g. И перезагрузка не требуется.
PS: проверено на версии 2020.3
Ссылка на документацию IntelliJ по настройке пользовательских параметров
Мне удалось установить параметры JVM, перейдя в настройки «Выполнить отладку» и установив указанное ниже значение.
E сть
idea64.exe
стартер в
IntelliJ IDEA 13.1.5\bin
так что вы можете адресовать больше места.