如何解决错误:“ org.jetbrains.jps.incremental.scala.remote.ServerException java.lang.StackOverflowError”

时间:2019-05-09 20:14:10

标签: scala maven apache-spark intellij-idea sbt

我正在尝试在scala-sbt项目中运行主类。运行该类会导致stackoverflow错误,并在下面粘贴StackTrace。

我确定这不是代码问题,因为对于同一项目,我可以通过按如下说明设置sbt conf文件中的内存来运行sbt程序包:https://stackoverflow.com/q/55874883

我试图在Intellij>设置> Scala Compile Server中设置参数,但是它无助于克服Error。 JDK:配置文件默认 Jvm最大堆大小,MB:2024 JVM选项:-server -Xmx2G -Xss20m -XX:MaxPermSize = 1000m -XX:ReservedCodeCacheSize = 1000m

IntelliJ: IntelliJ IDEA 2019.1(社区版) Build#IC-191.6183.87,建于2019年3月27日 JRE:1.8.0_202-release-1483-b39 amd64 JVM:JetBrains s.r.o的OpenJDK 64位服务器VM Windows 10 10.0

Sbt版本:1.2.8

Scala版本:2.11.8

Error:scalac: Error: org.jetbrains.jps.incremental.scala.remote.ServerException
java.lang.StackOverflowError

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.transform(TailCalls.scala:273)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.transform(TailCalls.scala:209)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.noTailTransform(TailCalls.scala:214)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.transform(TailCalls.scala:403)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.transform(TailCalls.scala:209)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.noTailTransform(TailCalls.scala:214)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.transform(TailCalls.scala:403)

    at scala.tools.nsc.transform.TailCalls$TailCallElimination.transform(TailCalls.scala:209)

    redacted...

4 个答案:

答案 0 :(得分:5)

我在Intellij IDEA Ultimate 2020.1.1中遇到了同样的问题。

以上选项均不适合我。但是,有了上述答案的提示,我发现Scala编译器也有不同的设置,更改后错误停止了。

我增加了Scala编译器服务器的堆栈跟踪大小:Preferences-> Compiler-> Scala Compiler-> Scala Compiler Server。然后,相应地更改JVM选项(在我的情况下为-server -Xss1024m)。

答案 1 :(得分:2)

我在Intellij IDEA Community Edition 2019.3.4中遇到了相同的问题。

最后,对我有用的是这个solution。基本上,请转到Settings -> Build, Execution, Deployment -> Compiler

然后,在“用户本地生成过程VM选项”上,使用-Xss将栈大小设置为更大的值

以我为例,我终于设法进行了将其设置为-Xss2048m的测试

我希望这会有所帮助。

答案 2 :(得分:0)

转到“配置”→“编辑自定义VM选项”,然后将其更改添加<​​/ p>

答案 3 :(得分:0)

如果你能够做 sbt 包(所以你有足够的堆大小并且为 sbt 配置了 -Xss)但是运行类仍然抛出 java.lang.StackOverflowError 尝试去

Settings -> Build, Execution, Deployment -> sbt

并勾选

sbt shell -> use for: project reloadbuilds

try those options