2012-03-19 66 views
9

我的系統是Mint 12 64bit。playframework - IOException無法分配內存

我已經安裝了類型安全堆棧並創建了一個新的應用程序。沒有修改代碼,我試圖運行它。這是輸出:

http://pastebin.com/6XwmsbAE

播放抱怨與此錯誤消息:

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

我該如何解決這個問題?

UPDATE:

@Mef

確定你是絕對正確的。我已經將最初的RAM從1 GB增加到2 GB(在virtualbox上運行)。編譯工作正好一次。

不幸的是,java已經下了決心,即使2 GB是不夠的:運行eclipse和firefox我的系統使用1 GB。然後我開始使用,內存使用量增加到大約1.2 GB。有人可能會認爲這是足夠的。事實並非如此。雖然仍有800 MB可用,但編譯失敗時會出現相同的錯誤。此外,在嘗試編譯應用程序後,內存使用量高達1.6 GB。即使在編譯該項目時,也足夠奇怪,它永遠不會達到2 GB,但峯值約爲1.8 GB。

儘管如此,我已經嘗試過,併爲虛擬機提供了3個內存。現在編譯和運行應用程序正常工作。作爲另一個3 GB可用的奇蹟,內存使用率永遠不會超過1.6 GB,並且遠低於我在2 GB迭代中看到的1.8 GB的最大值。

+2

最有可能你真的用完了內存。我不認爲這是玩相關... – Leo 2012-03-19 20:32:17

+0

我有1GB的內存。這會讓我感到驚訝,如果這是問題,但由於即時通訊使用virtualbox我可以輕鬆地增加內存。我再次嘗試後相應更新問題 – lhk 2012-03-19 20:50:25

+0

你說得對。 1GB是不夠的。我已經用2GB再次嘗試,並且一切都正常工作 – lhk 2012-03-20 15:54:53

回答

3

由於這是一般的javac錯誤,我不確定這是否與Play有關。很可能你真的用完了內存。

17

實際上,這不完全是一個系統錯誤:調整播放配置文件將允許您使其在內存小於1GB的系統上工作。

play-2.0.4/framework/build(或build.bat),你只需要改變

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

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

現在有可運行內存較少發揮等問題,但至少基本的設置工作。

+0

+1爲偉大的答案。我已經開始工作,現在正在開發另一個項目,但我相信這可以幫助其他開發人員。 – lhk 2012-11-19 16:31:41

+1

這解決了我的問題在VPS服務器! – 2012-12-13 19:33:10

+1

幾年後,我使用'java_opts =「 - Xms128M -Xmx512M」。/ activator「來達到同樣的效果。 – 2014-10-15 18:29:51