2011-01-06 35 views
8

Tôi cố gắng để chạy lệnh ant, tuy nhiên tôi nhận được lỗi sau:Out of lỗi bộ nhớ trong kiến ​​

[javadoc] javadoc: error - java.lang.OutOfMemoryError: Please increase memory. 
[javadoc] For example, on the Sun Classic or HotSpot VMs, add the option -J-Xmx 
[javadoc] such as -J-Xmx32m. 
[javadoc] 1 error 
[javadoc] 103 warnings 

Tôi đã thử googling để tìm hiểu làm thế nào tôi có thể thiết lập giá trị này, nhưng tôi không thể tìm thấy nó . Tôi đã thử

<javadoc maxmemory="256m"> 

Tôi đã thử

export ANT_OPTS=-Xmx256m 

nhưng tôi vẫn nhận được cùng một ngoại lệ. Tôi đã cố gắng để tăng giá trị cho 1024M witouth bất kỳ thành công

Cập nhật

Tôi giải quyết nó. Nó chẳng liên quan gì đến trí nhớ nho nhỏ. Đó là một vòng lặp vô tận trong thế hệ javadoc của tôi.

+0

Có vẻ như bạn đang bỏ lỡ đề xuất -J khi xuất. – dlamblin

+0

Không có điều đó không làm việc –

Trả lời

13

Tôi đã giải quyết.

Không có gì liên quan đến bộ nhớ nhỏ. Đó là một vòng lặp vô tận trong thế hệ javadoc của tôi.

Cách đặt đúng bộ nhớ cho kiến ​​là sử dụng export ANT_OPTS=-Xmx256m trên * nix.

Trên Windows theo usual steps for setting environment variables.

+2

Hi Làm thế nào bạn tìm ra rằng có vòng lặp vô tận? Tôi đang đối mặt với vấn đề tương tự trong khi dexing các lớp học. –

+0

Có một vòng lặp endlees trong mã chúng tôi đã có nơi chúng tôi tạo javadoc. –

+0

Bạn có thể vui lòng xây dựng? Vòng lặp nằm giữa các tham chiếu javadoc? Nếu vậy, làm thế nào bạn có thể nhận được thêm thông tin về vòng lặp chính nó, làm thế nào có thể theo dõi vòng lặp đó? –

5

Nhiệm vụ kiến ​​javac có thuộc tính memoryMaximumSize mà bạn nên đặt thành cùng giá trị như bạn làm cho -Xmx.

<javac memoryMaximumSize="256m" ...> 
    ... 
</javac> 

Tôi nên thêm rằng điều này giả định rằng nó thực sự là một nhiệm vụ javac gây ra lỗi tràn bộ nhớ.

+0

Tôi đã thử điều này. Không làm việc. Hành vi tương tự –

+0

Có phải đó là hành vi tương tự vì số lượng bộ nhớ không thay đổi khi bạn cần hoặc không phân bổ đủ bộ nhớ? Ghi nhớ quá rằng việc thay đổi kích thước bộ nhớ tối đa có thể ảnh hưởng đến kích thước của heap và ngăn xếp khác nhau. Tăng số lượng bộ nhớ thực sự có thể dẫn đến một chồng nhỏ hơn hoặc đống trong một số trường hợp. Một số thử nghiệm sẽ là cần thiết. –

+2

Tùy chọn trên phải được kết hợp với fork = "true" để hoạt động. Điều này sẽ chạy javac trong một quá trình riêng biệt với các thiết lập kích thước heap của riêng nó. Điều này cũng sẽ hạn chế bất kỳ rò rỉ bộ nhớ nào trong việc triển khai javac với tiến trình con riêng của nó, mà không ảnh hưởng đến tiến trình Ant cha. – zkarthik

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