Play Framework - 无法为对象堆保留足够的空间

12

我对我的游戏项目进行了一些修改,但在尝试运行时出现错误。

>play run
Error occurred during initialization of VM
Could not reserve enough space for object heap
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occured. Program will exit.

这是一个常见的问题吗?我对play框架的经验相对较少,但以前已经运行了我的项目多次,没有遇到过这个错误。

编辑:关于Java版本的信息。

>java -version
java version "1.7.0_11"
Java(TM) Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) Client VM (build 23.6-b04, mixed mode, sharing)

1
看看这篇帖子https://dev59.com/H3NA5IYBdhLWcg3wL6yx。它可能会对你有所帮助。 - Vishal K
谢谢,我一定会收藏的。奇怪的是,在尝试了另外一次或两次后,我竟然能够加载该项目。 - user1197252
可能您的系统无法为JVM提供足够的内存以正确初始化JVM。为了快速解决问题,我建议您尝试使用"java -Xmx6g"或"java -Xmx1500m"。 - Vishal K
可能是重复的问题:无法为对象堆保留足够的空间 - Mihai Soloi
1个回答

20
在Play框架2.0.3中,你需要替换以下命令的命令行参数,位于<play framework install dir>\framework\build.bat脚本中。
java -Xms512M -Xmx1024M -Xss1M -XX:+CMSClassUnloadingEnabled -XX:MaxPermSize=256M %DEBUG_PARAM% -Dfile.encoding=UTF8 -Dplay.version="%PLAY_VERSION%" -Dsbt.ivy.home="%~dp0..\repository" -Dplay.home="%~dp0." -Dsbt.boot.properties="file:///%p%sbt/sbt.boot.properties" -jar "%~dp0sbt\sbt-launch.jar" %*

进入

java -XX:+CMSClassUnloadingEnabled %DEBUG_PARAM% -Dfile.encoding=UTF8 -Dplay.version="%PLAY_VERSION%" -Dsbt.ivy.home="%~dp0..\repository" -Dplay.home="%~dp0." -Dsbt.boot.properties="file:///%p%sbt/sbt.boot.properties" -jar "%~dp0sbt\sbt-launch.jar" %*

它解决了我的问题。

了解更多,请参考此文章


不需要修改.bat文件(在我的Play! 2.3.8安装中称为activator.bat,位于项目的根目录下),您还可以创建一个名为JAVA_OPTS的环境变量,并将以下值存储在其中:-Xms512M -Xmx1024M。我通过这种方式进行了修改后,成功地运行了我的activator。 - Benjamin Jentsch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接