ฉันจะเพิ่มพื้นที่ฮีปให้คอมไพเลอร์ Intellij ได้อย่างไร


107

เมื่อฉันสร้างโปรเจ็กต์ 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

ฉันขาดอะไรไป?

คำตอบ:


159

เวอร์ชันปัจจุบัน:

Settings( Preferencesบน Mac) | Build, Execution, Deployment| Compiler| การสร้างกระบวนการขนาดฮี

เวอร์ชันเก่า:

Settings( Preferencesบน Mac) | Compiler| Java Compiler| ขนาดกองสูงสุด

คอมไพเลอร์รันใน JVM แยกต่างหากตามค่าเริ่มต้นดังนั้นการตั้งค่าฮีป IDEA ที่คุณตั้งไว้idea.vmoptionsจึงไม่มีผลกับคอมไพลเลอร์


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) พารามิเตอร์นี้เรียกว่า "Build process heap size (Mbytes)" และสามารถพบได้ใน "Settings | Build, Execution, Deployment | Compiler"
tomger

96

ตั้งแต่ IntelliJ 2016 ตำแหน่งคือไฟล์ | การตั้งค่า | สร้างการดำเนินการการปรับใช้ | คอมไพเลอร์ | การสร้างกระบวนการขนาดฮี

ป้อนคำอธิบายภาพที่นี่


2
ฉันเปลี่ยนเป็น 2000 MB แต่มันยังใช้ไม่ได้สำหรับฉัน
R11G

5

ฉันมีปัญหาคล้ายกันกับ Ant build (เริ่มด้วยมือจาก IDEA GUI) ในกรณีของฉันมีวิธีแก้ปัญหาที่เหมาะสมในการคลิกขวาที่งาน Ant เลือกคุณสมบัติและตั้งค่าที่สูงขึ้นเป็นช่องอินพุต "Maximum heap space (Mb):" และ "Maximum stack space (Mb):"

ป้อนคำอธิบายภาพที่นี่


5

ในการแก้ไขปัญหานี้ให้ทำตามขั้นตอนด้านล่าง -

1). ใน inteli ไปที่ File> Setting Option และ Search for Vm Option ในฟิลด์ Vm Option for Importer ให้ค่า -Xmx512m ตัวเลือกการตั้งค่า Intelij

2). ไปที่ Control Pannel เลือก View by: ไอคอนขนาดใหญ่จากนั้นไปที่ Java หนึ่งหน้าต่าง promp จะปรากฏขึ้นพร้อมชื่อjava control pannelจากนั้นไปที่ java Java VM Options

เลือกตัวเลือกมุมมอง ตัวเลือกมุมมอง java

ใน Java เรียกใช้เวลาตั้งค่าสิ่งแวดล้อมผ่านการเรียกใช้พารามิเตอร์เวลา-Xmx1024m

3). หากตัวเลือกที่ระบุข้างต้นไม่ทำงานให้เปลี่ยนขนาดของ pom.xml


เหตุใดคุณจึงแก้ไขลิงก์นั้น คุณกลัวสิ่งที่เกิดขึ้นที่นี่หรือไม่?
Glorfindel

ฉันได้ให้คำตอบที่ถูกต้องและฉันได้ให้เครดิตกับเว็บไซต์อื่นแล้ว แต่ฉันยังเห็นการโหวตสองครั้งสำหรับคำตอบของฉันและคำตอบที่ฉันให้นั้นถูกต้องในทางปฏิบัติที่ฉันได้เผชิญและแก้ไขได้
Jimy Ten

โปรดแจ้งให้เราทราบหากฉันสามารถให้เครดิตกับเว็บไซต์อื่นได้
Jimy Ten

2
การลงคะแนนชั่วคราวนั้นมาจากฉัน หากคุณต้องการให้เครดิตโปรดเชื่อมโยงไปยังหน้าที่คุณพบข้อมูลไม่ใช่รายการบทช่วยสอน
Frenzy Li

3

GWT ใน Intellij 12

FWIW ฉันได้รับข้อผิดพลาดที่คล้ายกันกับแอปพลิเคชัน GWT ของฉันในระหว่าง ' Build | สร้างโครงการใหม่ '

สิ่งนี้เกิดจาก 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 install

ฉันสามารถกำจัดมันได้โดยเปลี่ยนการตั้งค่า maven runner

Settings| Build, Execution, Deployment| Build Tools| Maven| Runner| VM optionsถึง-Xmx512m


-3

มี

idea64.exe

เริ่มต้นใน

IntelliJ IDEA 13.1.5 \ bin

เพื่อให้คุณสามารถจัดการพื้นที่ได้มากขึ้น


คำตอบนี้ถูกต้องในระดับหนึ่งแม้ว่าจะไม่ได้อยู่ในบริบทของคำถามข้างต้นก็ตาม idea64.exe ให้หน่วยความจำ Permgen แก่คุณมากขึ้นใช้ idea64.exe หากคุณใช้ระบบปฏิบัติการ 64 บิต พบว่ามีประโยชน์ coz 32bit idea.exe ขัดข้องเมื่อไม่มี mem ในระหว่างการสร้าง
Adil H. Raza
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.