为什么" sbt运行"当"激活器运行时,OutOfMemoryError失败"工作良好?

时间:2014-11-27 08:20:24

标签: playframework-2.0 sbt typesafe-activator

我可以使用激活器运行成功启动我的应用程序,但简单的 sbt run 会因OutOfMemoryError或应用程序突然终止而结束。

Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "play-akka.actor.default-dispatcher-2"

如果我的理解是正确的,Activator应该将自定义的所有命令委托给SBT。显然,Activator似乎做了更多的事情。

我如何找到差异?在使用SBT运行我的应用程序之前是否应该设置任何强制JVM设置?

我的环境是Java 7,Windows 7和SBT 0.13.7

1 个答案:

答案 0 :(得分:4)

从根本上说,没有区别。 Activator基本上只是调用sbt。它做了一点点,它包括一些提供ui的sbt插件和从模板创建新项目的能力。与大多数vanilla sbt调用程序脚本相比,它还使用一些更合理的默认JVM设置调用sbt,包括更多内存。

如何设置更好的默认值取决于您使用的sbt调用程序脚本,这可能取决于您如何安装sbt。但是大多数脚本都支持SBT_OPTS环境变量,将-Xmx1024m放在其中,例如为sbt提供一堆堆空间。如果你正在获得内存空间错误,你可能还想添加-XX:MaxPermSize=768m