我可以使用激活器运行成功启动我的应用程序,但简单的 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
答案 0 :(得分:4)
从根本上说,没有区别。 Activator基本上只是调用sbt。它做了一点点,它包括一些提供ui的sbt插件和从模板创建新项目的能力。与大多数vanilla sbt调用程序脚本相比,它还使用一些更合理的默认JVM设置调用sbt,包括更多内存。
如何设置更好的默认值取决于您使用的sbt调用程序脚本,这可能取决于您如何安装sbt。但是大多数脚本都支持SBT_OPTS
环境变量,将-Xmx1024m
放在其中,例如为sbt提供一堆堆空间。如果你正在获得内存空间错误,你可能还想添加-XX:MaxPermSize=768m
。