2012-03-19 29 views
9

Hệ thống của tôi là Mint 12 64bit.playframework - IOException không thể cấp phát bộ nhớ

Tôi đã cài đặt ngăn xếp an toàn và tạo ứng dụng phát mới. Mà không sửa đổi mã tôi đã cố gắng để chạy nó. Đây là kết quả:

http://pastebin.com/6XwmsbAE

Chơi phàn nàn với thông báo lỗi này:

IOException: Cannot run program "javac": java.io.IOException: error=12, Cannot allocate memory 

Làm thế nào tôi có thể sửa lỗi này?

UPDATE:

@Mef

Ok bạn đã chắc chắn đúng. Tôi đã tăng RAM ban đầu từ 1 GB lên 2 GB (chạy trên VirtualBox này). Biên dịch đã làm việc chính xác một lần.

Thật không may java đã quyết định rằng thậm chí 2 GB là không đủ: Chạy eclipse và firefox hệ thống của tôi sử dụng 1 GB. Sau đó, tôi bắt đầu sbt và mức sử dụng bộ nhớ tăng lên khoảng 1,2 GB. Người ta có thể nghĩ rằng điều này là đủ. Nó không phải là. Biên dịch thất bại với cùng một lỗi mặc dù 800 MB vẫn có sẵn. Hơn nữa sau khi cố gắng biên dịch ứng dụng, mức sử dụng bộ nhớ lên đến 1,6 GB. Ngẫu nhiên, ngay cả khi biên soạn dự án, nó không bao giờ đạt tới 2 GB nhưng đạt đỉnh vào khoảng 1,8 GB.

Tuy nhiên, tôi đã thử lại và nạp 3 hợp đồng RAM vào máy ảo. Bây giờ biên dịch và chạy ứng dụng hoạt động tốt. Như một phép lạ với 3 GB có sẵn việc sử dụng bộ nhớ không bao giờ tăng trên 1,6 GB và vẫn dưới mức tối đa 1,8 GB mà tôi thấy trong 2 GB lặp đi lặp lại.

+2

khả năng bạn thực sự chạy ra khỏi bộ nhớ nhất. Tôi không nghĩ rằng đây là Play liên quan ... – Leo

+0

Tôi đã có ram 1gb. Nó sẽ làm tôi ngạc nhiên nếu đó là vấn đề nhưng kể từ khi im sử dụng VirtualBox tôi có thể dễ dàng tăng bộ nhớ. Ill cập nhật câu hỏi cho phù hợp sau khi tôi đã thử lại một lần nữa – lhk

+0

Bạn đã đúng. 1GB không đủ.Tôi đã thử lại với 2GB và mọi thứ hoạt động tốt – lhk

Trả lời

3

Vì đây là lỗi chung của javac, tôi nghi ngờ rằng nó liên quan đến Play. Nhiều khả năng bạn thực sự hết bộ nhớ.

17

Thực ra đây không hoàn toàn là lỗi hệ thống: việc tinh chỉnh tệp cấu hình phát sẽ cho phép bạn làm cho nó hoạt động trên hệ thống có bộ nhớ dưới 1GB.

Trong play-2.0.4/framework/build (hoặc build.bat), bạn chỉ cần thay đổi

java ${DEBUG_PARAM} -Xms512M -Xmx1536M ... 

để

java ${DEBUG_PARAM} -Xms128M -Xmx512M ... 

Bây giờ có thể có những vấn đề khác chạy chơi với bộ nhớ ít hơn, nhưng ít nhất các công trình thiết lập cơ bản .

+0

+1 cho câu trả lời tuyệt vời. Tôi đã chuyển sang và bây giờ làm việc trên một dự án khác nhưng tôi chắc chắn rằng điều này có thể giúp các nhà phát triển khác. – lhk

+1

Điều này giải quyết được vấn đề của tôi trong máy chủ VPS! –

+1

Tôi đang sử dụng 'java_opts =" - Xms128M -Xmx512M "./Activator' cho cùng một hiệu ứng, một vài năm sau đó. –

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