Como posso dar ao compilador Intellij mais espaço de heap?

106

Quando eu faço um projeto Intellij, continuo recebendo o seguinte erro de falta de memória.

Já aumentei meu tamanho de heap em idea.vmoptions:

-Xms128m
-Xmx2048m
-XX:MaxPermSize=1024m
-XX:ReservedCodeCacheSize=64m
-ea

Mas ainda recebo este erro:

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

o que estou perdendo?

Michael
fonte

Respostas:

157

Versão Atual:

Settings( Preferencesno Mac) | Build, Execution, Deployment| Compiler| Crie o tamanho do heap do processo .

Versões mais antigas:

Settings( Preferencesno Mac) | Compiler| Java Compiler| Tamanho máximo de heap .

O compilador é executado em uma JVM separada por padrão, portanto, as configurações de heap do IDEA que você definiu idea.vmoptionsnão têm efeito sobre o compilador.

CrazyCoder
fonte
10
E é necessário reiniciar depois :)
cgl
9
Na verdade não é
jarandaf
11
Eu sei que isso é um pouco fora do assunto, mas pode poupar alguns cabelos a alguém se encontrar isso. Eu estava tendo o mesmo problema, mas o meu vinha de quando eu estava fazendo um mvn installno IntelliJ. A solução foi modificar a Settings | Maven | Runner | **VM Options** configuração Devo ter tentado todas as outras até acertar. Espero que ajude alguém.
FuriousGeorge
14
@ clankill3r try Settings| Compiler| Build process heap size.
CrazyCoder
5
Para versões mais recentes do Intellij (a minha é 2016.1.3), este parâmetro é chamado de "Tamanho do heap do processo de construção (Mbytes)" e pode ser encontrado em "Configurações | Construção, execução, implantação | Compilador".
dia
95

Desde o IntelliJ 2016, o local é Arquivo | Configurações | Compilação, execução, implantação | Compiler | Crie o tamanho do heap do processo .

insira a descrição da imagem aqui

Queixo
fonte
2
Eu mudei para 2.000 MB, mas ainda não funcionou para mim.
R11G de
5

Tive um problema semelhante com a construção do Ant (iniciado manualmente a partir do IDEA GUI). No meu caso, havia a solução certa para clicar com o botão direito na tarefa Ant, escolher propriedades e definir um valor mais alto para "Espaço máximo de pilha (Mb):" e "Espaço máximo de pilha (Mb):" campos de entrada.

insira a descrição da imagem aqui

Jan Němec
fonte
5

Para resolver esse problema, siga as etapas abaixo:

1). Em inteli Vá em Arquivo> Opção de configuração e pesquise a opção Vm. No campo Opção Vm para importador, forneça o valor -Xmx512m. Opções de configuração Intelij

2). Vá para Painel de Controle Selecione Exibir por: Ícones grandes e vá para Java. Uma janela de aviso aparecerá com o nome painel de controle Java e vá para Opções Java VM

selecione a opção de visualização. opções de visualização java

Em Java Run time Environment Setting, passe os parâmetros de tempo de execução como -Xmx1024m .

3). Se as opções fornecidas acima não funcionarem, altere o tamanho de pom.xml

Jimy Ten
fonte
Por que você editou esse link? Você tem medo do que aconteceu aqui ?
Glorfindel
Eu dei a resposta correta e dei crédito a outro site, mas ainda posso ver dois downvotes na minha resposta.e a resposta que dei é praticamente correta que eu enfrentei e resolvi.
Jimy Ten
por favor, deixe-me saber se eu posso dar crédito a outro site.
Jimy Ten
2
Esse downvote temporário veio de mim. Se você quiser dar crédito, por favor, link para a página exata onde você encontrou as informações, não uma lista de tutoriais.
Frenzy Li
3

GWT no Intellij 12

FWIW, estava recebendo um erro semelhante com meu aplicativo GWT durante ' Build | Projeto de reconstrução '.

Isso foi causado por Intellij fazer uma compilação completa do GWT da qual não gostei porque também é um processo muito demorado.

Desativei a compilação do GWT desativando as caixas de seleção do módulo em ' Estrutura do projeto | Facetas | GWT '.

Alternativamente, há uma configuração de ' Tamanho máximo do heap do compilador ' nesse local também.

Peter L
fonte
0

No meu caso, o erro foi causado pela memória insuficiente alocada para o ciclo de vida de "teste" do maven. Foi corrigido adicionando <argLine>-Xms3512m -Xmx3512m</argLine>a:

<pluginManagement>
  <plugins>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.16</version>
        <configuration>
            <argLine>-Xms3512m -Xmx3512m</argLine>

Obrigado @crazycoder por apontar isso (e também por não estar relacionado ao IntelliJ; neste caso).

Se seus testes forem bifurcados, eles serão executados em uma nova JVM que não herda as opções de JVM do Maven. As opções de memória personalizada devem ser fornecidas por meio do executor de teste em pom.xml, consulte a documentação do Maven para obter detalhes, isso tem muito pouco a ver com o IDE.

Neil
fonte
0

Eu estava enfrentando o erro "java.lang.OutOfMemoryError: Java heap space" ao construir meu projeto usando o comando maven install.

Consegui me livrar dele alterando as configurações do maven runner.

Settings| Build, Execution, Deployment| Build Tools| Maven| Runner| VM optionspara -Xmx512m

Jaison
fonte
-3

Existe um

idea64.exe

iniciante em

IntelliJ IDEA 13.1.5 \ bin

para que você possa ocupar mais espaço.

Julian Dehne
fonte
Esta resposta é até certo ponto correta, embora não esteja no contexto da pergunta acima. idea64.exe fornece mais memória permgen, use idea64.exe se você estiver em um sistema operacional de 64 bits. Achei útil porque 32bit idea.exe estava travando ao ficar sem memória durante a compilação.
Adil H. Raza de