2011-12-20 29 views
54

Khi tôi thực hiện dự án Intellij, tôi tiếp tục bị lỗi bộ nhớ sau.Làm thế nào tôi có thể cung cấp cho trình biên dịch Intellij nhiều không gian hơn?

tôi đã tăng kích thước heap của tôi trong idea.vmoptions:

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

Nhưng tôi vẫn nhận được lỗi này:

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 

tôi thiếu gì?

Trả lời

75

phiên bản hiện tại:

Settings (Preferences trên Mac) | Build, Execution, Deployment | Compiler | Kích thước heap quy trình xây dựng.

phiên bản cũ:

Settings (Preferences trên Mac) | Compiler | Java Compiler | Kích thước heap tối đa.

Trình biên dịch chạy trong một JVM riêng biệt theo mặc định để cài đặt heap IDEA mà bạn đặt trong idea.vmoptions không ảnh hưởng đến trình biên dịch.

+6

Và khởi động lại là cần thiết sau đó :) – cgl

+3

Trên thực tế nó không phải là – jarandaf

+5

Tôi biết điều này là hơi lạc đề nhưng có thể tiết kiệm được một người nào đó một số tóc nếu họ đi qua này. Tôi đã có cùng một vấn đề, nhưng tôi bắt nguồn từ khi tôi đã làm một 'mvn install' trong IntelliJ. Giải pháp là sửa đổi 'Cài đặt | Maven | Runner | ** Tùy chọn VM ** 'Tôi phải thử mọi cài đặt khác trong đó cho đến khi tôi nhận được quyền đó. Hy vọng nó sẽ giúp ai đó. – FuriousGeorge

3

GWT trong Intellij 12

FWIW, tôi đã nhận được một lỗi tương tự với ứng dụng GWT của tôi trong 'xây dựng | Xây dựng lại dự án '.

Điều này là do Intellij thực hiện một biên dịch GWT đầy đủ mà tôi không thích vì nó cũng là một quá trình rất dài.

Tôi tắt tính năng biên dịch GWT bằng cách tắt các hộp kiểm mô-đun trong 'Cấu trúc dự án | Facets | GWT '.

Hoặc cũng có cài đặt 'Trình biên dịch tối đa kích thước heap' ở vị trí đó.

0

Trong trường hợp của tôi, lỗi được gây ra bởi bộ nhớ không đủ cấp phát cho vòng đời "thử nghiệm" của con quạ. Nó đã được cố định bằng cách thêm <argLine>-Xms3512m -Xmx3512m</argLine> tới:

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

Cảm ơn @crazycoder cho trỏ này ra (và cũng có thể rằng nó không liên quan đến IntelliJ; trong trường hợp này).

If your tests are forked, they run in a new JVM that doesn't inherit Maven JVM options. Custom memory options must be provided via the test runner in pom.xml, refer to Maven documentation for details, it has very little to do with the IDE.

-3

Có một khởi

idea64.exe

trong

IntelliJ IDEA 13.1.5\bin

để bạn có thể giải quyết nhiều không gian hơn.

+0

Câu trả lời này là ở một mức độ chính xác, mặc dù không nằm trong ngữ cảnh của câu hỏi ở trên. idea64.exe không cung cấp cho bạn nhiều bộ nhớ permgen, sử dụng idea64.exe nếu bạn đang ở trên hệ điều hành 64bit. Tìm thấy nó hữu ích coz 32bit idea.exe đã bị rơi khi chạy ra khỏi mem trong quá trình xây dựng. –

56

Kể từ IntelliJ 2016, vị trí là Tệp | Cài đặt | Xây dựng, Thi hành, Triển khai | Trình biên dịch | Xây dựng quy trình heap kích thước.

enter image description here

1

Tôi đã có một vấn đề tương tự với xây dựng Ant (bắt đầu bằng tay từ IDEA GUI). Trong trường hợp của tôi, có một giải pháp đúng để kích chuột phải vào nhiệm vụ Ant, chọn các thuộc tính và thiết lập một giá trị cao hơn cho "Vùng trống tối đa (Mb):" và "Khoảng trống tối đa (Mb):" các trường nhập.

enter image description here

Các vấn đề liên quan