Làm cách nào để cung cấp cho trình biên dịch Intellij thêm không gian heap?


106

Khi tôi thực hiện một dự án Intellij, tôi tiếp tục nhận được lỗi hết bộ nhớ sau.

Tôi đã tăng kích thước đống của mình trong idea.vmoptions:

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

Nhưng tôi vẫn gặp 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 đang thiếu gì?

Câu trả lời:


157

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

Settings( Preferencestrên Mac) | Build, Execution, Deployment| Compiler| Xây dựng kích thước đống quy trình .

Các phiên bản cũ hơn:

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

Theo mặc định, trình biên dịch chạy trong một JVM riêng biệt nên các cài đặt IDEA heap mà bạn đã thiết lập idea.vmoptionssẽ không ảnh hưởng đến trình biên dịch.


10
Và bắt buộc phải khởi động lại sau đó :)
cgl

9
Thực ra không phải vậy
jarandaf 15/09/13

11
Tôi biết điều này hơi lạc đề nhưng có thể cứu ai đó ít tóc nếu họ bắt gặp điều này. Tôi cũng gặp phải vấn đề tương tự, nhưng vấn đề của tôi bắt nguồn từ khi tôi làm mvn installtrong IntelliJ. Giải pháp là sửa đổi Settings | Maven | Runner | **VM Options** cài đặt mà tôi chắc đã thử mọi cài đặt khác trong đó cho đến khi tôi hiểu đúng. Hy vọng nó sẽ giúp một ai đó.
FuriousGeorge

14
@ clankill3r thử Settings| Compiler| Build process heap size.
CrazyCoder

5
Đối với các phiên bản mới hơn của Intellij (của tôi là 2016.1.3), thông số này được gọi là "Kích thước đống quy trình xây dựng (Mbytes)" và có thể tìm thấy trong "Cài đặt | Xây dựng, Thực thi, Triển khai | Trình biên dịch".
tomger

95

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

nhập mô tả hình ảnh ở đây


2
Tôi đã thay đổi nó thành 2000 MB nhưng nó vẫn không hoạt động với tôi.
R11G

5

Tôi đã gặp sự cố tương tự với bản dựng Ant (bắt đầu bằng tay từ IDEA GUI). Trong trường hợp của tôi, có giải pháp phù hợp là nhấp chuột phải vào tác vụ Ant, chọn thuộc tính và đặt giá trị cao hơn cho các trường đầu vào "Không gian đống tối đa (Mb):" và "Không gian ngăn xếp tối đa (Mb):".

nhập mô tả hình ảnh ở đây


5

Để giải quyết vấn đề này, hãy làm theo các bước dưới đây-

1). Trong inteli Đi tới Tệp> Tùy chọn Thiết lập và Tìm kiếm Tùy chọn Vm Trong trường Tùy chọn Vm cho Nhà nhập khẩu, cho giá trị -Xmx512m. Tùy chọn cài đặt Intelij

2). Vào Control Pannel Chọn View theo: Các biểu tượng lớn rồi Chuyển đến Java, một cửa sổ nhắc sẽ xuất hiện với tên java control pannel, sau đó vào java Java VM Options

chọn tùy chọn xem. tùy chọn chế độ xem java

Trong Java Thời gian chạy Môi trường vượt qua Thời gian chạy Các thông số dưới dạng -Xmx1024m .

3). Nếu các tùy chọn đã cho ở trên không hoạt động thì hãy thay đổi kích thước của pom.xml


Tại sao bạn lại chỉnh sửa liên kết đó? Bạn có sợ những gì đã xảy ra ở đây ?
Glorfindel

Tôi đã đưa ra câu trả lời chính xác và tôi đã ghi công cho một trang web khác nhưng tôi vẫn có thể thấy hai phiếu phản đối cho câu trả lời của mình. và câu trả lời mà tôi đưa ra thực tế là đúng mà tôi đã phải đối mặt và giải quyết nó.
Jimy Ten,

xin vui lòng cho tôi biết nếu tôi có thể cung cấp tín dụng cho trang web khác.
Jimy Ten,

2
Lời tán thành tạm thời đó là của tôi. Nếu bạn muốn cung cấp tín dụng, vui lòng liên kết đến trang chính xác nơi bạn tìm thấy thông tin, không phải danh sách các hướng dẫn.
Frenzy Li

3

GWT trong Intellij 12

FWIW, tôi đã gặp lỗi tương tự với ứng dụng GWT của mình trong quá trình ' Build | Xây dựng lại dự án '.

Điều này là do Intellij thực hiện 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 trình 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 | Các khía cạnh | GWT '.

Ngoài ra, cũng có cài đặt ' Kích thước đống tối đa của trình biên dịch ' ở vị trí đó.


0

Trong trường hợp của tôi, lỗi là do không đủ bộ nhớ được phân bổ cho vòng đời "thử nghiệm" của maven. Nó đã được sửa bằng cách thêm <argLine>-Xms3512m -Xmx3512m</argLine>vào:

<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 đã chỉ ra điều này (và nó cũng không liên quan đến IntelliJ; trong trường hợp này).

Nếu các bài kiểm tra của bạn được phân nhánh, chúng sẽ chạy trong một JVM mới không kế thừa các tùy chọn Maven JVM. Các tùy chọn bộ nhớ tùy chỉnh phải được cung cấp thông qua trình chạy thử nghiệm trong pom.xml, hãy tham khảo tài liệu Maven để biết chi tiết, nó có rất ít liên quan đến IDE.


0

Tôi đã gặp phải lỗi "java.lang.OutOfMemoryError: Java heap space" trong khi xây dựng dự án của mình bằng lệnh maven install.

Tôi đã có thể loại bỏ nó bằng cách thay đổi cài đặt maven runner.

Settings| Build, Execution, Deployment| Build Tools| Maven| Runner| VM optionsđến -Xmx512m


-3

Đây là một

idea64.exe

bắt đầu vào

IntelliJ IDEA 13.1.5 \ bin

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


Câu trả lời này đúng ở một mức độ nào đó, mặc dù không nằm trong ngữ cảnh của câu hỏi trên. idea64.exe cung cấp cho bạn nhiều bộ nhớ cố định hơn, hãy sử dụng idea64.exe nếu bạn đang sử dụng hệ điều hành 64bit. Thấy hữu ích coz 32bit idea.exe bị crash khi hết mem trong quá trình build.
Adil H. Raza
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.