当使用eclipse
编译play2.1 scala项目时,我得到的错误为
[error]编译过程中未捕获的异常:java.lang.StackOverflowError
(错误)(编译:编译)java.lang.StackOverflowError
我试图在application.conf
中配置编译器,添加以下行:
jvm。内存=-Xmx5g -Xms5g -Xss8192M
(我的程序也需要大量的堆空间,所以我还添加了xmx和xms)
但它不工作…
我该如何解决这个问题?
很奇怪,你得到一个StackOverflow。看起来确实像个虫子。但是,如果您确实没有足够的堆栈空间,那么修改application.conf将无济于事。这些设置控制应用程序的运行时参数,而您的问题是在编译时。
这个SO答案显示了如何为SBT调整JVM参数:执行升降机项目时使用SBT出现内存不足错误
在您的情况下,您将修改play分发文件夹中的play文件,并在那里添加堆栈特定选项(play实用程序只是一个自定义的sbt版本)。
您的异常可能是由于编译器中的错误,而不是堆栈大小不足。
[error] uncaught exception during compilation:java.lang.StackOverflowError
[error] (compile:compile)java.lang.StackOverflowError
它们看起来像是来自代码中的错误。仔细检查那里是否有问题。通常的SBT问题是或java.lang.OutOfMemoryError: PermGen space
,在这种情况下,使用@Marius Danila的答案来解决问题。
JUnit
或Selenium
。看看这里,用单元测试再次检查你的逻辑。
现在工作了,当我把所有东西都移回旧版本:scala 2.9.1或2.9.2都工作得很好,编译时没有堆栈溢出;播放版本为2.0.4