3

使用 编译 play2.1 scala 项目时eclipse,出现错误

[错误] 编译期间未捕获的异常:java.lang.StackOverflowError

[错误](编译:编译)java.lang.StackOverflowError

我尝试application.conf通过添加以下行来配置编译器:

jvm.memory=-Xmx5g -Xms5g -Xss8192M

(我的程序也需要很多堆空间,所以我也加了xmx和xms)

但它不起作用..

我该如何解决这个问题?

4

4 回答 4

3

奇怪的是你得到了一个 StackOverflow。它看起来确实像一个错误。但是,如果确实是您没有足够的堆栈空间,那么修改 application.conf 将无济于事。这些设置控制应用程序的运行时参数,而您的问题在于编译。

这个 SO 答案显示了如何调整 SBT 的 JVM 参数: Out of Memory Error Using SBT When Executing Lift Project

在您的情况下,您将修改播放分发文件夹中的播放文件并在其中添加特定于堆栈的选项(播放实用程序只是自定义的 sbt 版本)。

于 2013-04-04T08:30:53.090 回答
2

您的异常可能是由于编译器中的错误,而不是堆栈大小不足。

于 2013-04-04T07:27:46.933 回答
1
[error] uncaught exception during compilation:java.lang.StackOverflowError

[error] (compile:compile)java.lang.StackOverflowError

它们看起来像是来自代码中的错误。仔细检查那里的问题。通常的 SBT 问题是 or java.lang.OutOfMemoryError: PermGen space,在这种情况下使用@Marius Danila 的答案来解决问题。

最好的办法是对您的方法进行单元测试。玩用JUnit还是Selenium为了那个。看看这里,用单元测试仔细检查你的逻辑。

于 2013-04-04T09:44:18.920 回答
0

现在一切正常,当我将所有内容移回旧版本时:scala 2.9.1 或 2.9.2 一切正常,编译时没有堆栈溢出;播放版本为 2.0.4。

于 2013-04-04T17:13:39.943 回答