playframework-2.0 - 为什么 "sbt run"失败并出现 OutOfMemoryError 而 "activator run"工作正常?

标签 playframework-2.0 sbt typesafe-activator

我可以通过 activator run 成功启动我的应用程序,但简单的 sbt run 会以 OutOfMemoryError 或应用程序突然终止而结束。

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

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

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

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

最佳答案

从根本上来说,没有什么区别。 Activator 本质上只是调用 sbt。不过它的功能还多一点,它包括一些 sbt 插件,这些插件提供了 ui 和从模板创建新项目的能力。它还使用一些比大多数普通 sbt 调用程序脚本更合理的默认 JVM 设置来调用 sbt,包括更多的内存。

如何设置更好的默认值取决于您使用的 sbt 调用程序脚本,并且这可能取决于您安装 sbt 的方式。但大多数脚本都支持 SBT_OPTS 环境变量,例如将 -Xmx1024m 放入该变量中,以便为 sbt 提供千兆的堆空间。如果您遇到永久代空间内存不足错误,您可能还需要添加 -XX:MaxPermSize=768m

关于playframework-2.0 - 为什么 "sbt run"失败并出现 OutOfMemoryError 而 "activator run"工作正常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27166019/

相关文章:

scala - 向 JsValue 添加元素?

scala - 如何在 playframework 2 上创建仅测试路线和 View ?

jar - 在 sbt 中添加 jar URL 作为依赖项的简单方法

docker - Play Framework - 通过 Docker 容器传递应用程序参数

scala - Play Scala 激活器编译命令显示值 userid 不是 play.api.data.Form[models.Changepas sword] 的成员

java - 无法解析 IntelliJ 中的反向路由方法

templates - 玩! Framework 2.0 - 循环遍历 scala 模板中的 map ?

scala - 如何启动 sbt 控制台并自动计算某些表达式?

playframework-2.0 - 激活器抛出 IllegalArgumentException : URI has an authority component

java - 如何在ubuntu中部署play框架项目?