我的系统是Mint 12 64位。
我已经安装了类型安全堆栈,并创建了一个新的play应用程序。在不修改代码的情况下,我尝试运行它。这是输出:
Play报错并显示以下错误消息:
IOException: Cannot run program "javac": java.io.IOException: error=12, Cannot allocate memory 我该如何解决这个问题呢?
更新:
@Mef
好吧,你绝对是对的。我已经将初始RAM从1 GB增加到2 GB (在virtualbox上运行)。编译只工作过一次。
不幸的是,java已经下定决心,即使是2 GB也不够:运行eclipse和firefox,我的系统使用1 GB。然后我启动sbt,内存使用量上升到大约1.2 GB。有人可能会认为这已经足够了。不是。编译失败并返回相同的错误,尽管仍有800MB可用。此外,在尝试编译应用程序之后,内存使用量将达到1.6 GB。奇怪的是,即使在编译项目时,它也从未达到2 GB,而是达到了大约1.8 GB的峰值。
尽管如此,我还是尝试了一次,并向虚拟机提供了3 to的RAM。现在,编译和运行应用程序工作得很好。作为3 GB可用内存的另一个奇迹,内存使用量从未超过1.6 GB,并且远远低于我在2 GB迭代中看到的1.8 GB的最大值。
发布于 2012-03-20 23:57:05
由于这是一个一般性的javac错误,我怀疑它与游戏相关。最有可能的是你真的用完了内存。
发布于 2012-11-11 18:06:32
实际上,这并不完全是系统错误:调整播放配置文件将允许它在内存小于1 1GB的系统上工作。
在play-2.0.4/framework/build (或build.bat)中,您只需更改
java ${DEBUG_PARAM} -Xms512M -Xmx1536M ...至
java ${DEBUG_PARAM} -Xms128M -Xmx512M ...现在,在内存较少的情况下运行play可能会出现其他问题,但至少基本设置可以正常工作。
发布于 2013-05-14 12:54:52
这在另一篇文章中描述得很好,这似乎是OpenJDK的一个问题。
How to solve "java.io.IOException: error=12, Cannot allocate memory" calling Runtime#exec()?
尝试以下操作:
# echo 1 > /proc/sys/vm/overcommit_memory这对我很有效:-)
https://stackoverflow.com/questions/9777210
复制相似问题