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

Pav*_*Obj 11 scala intellij-idea maven sbt apache-spark

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

我确信这不是代码问题,因为对于同一个项目,我能够通过在 sbt conf 文件中设置内存来运行 sbt 包,如下所述:https ://stackoverflow.com/q/55874883 。

我试图在 Intellij> 设置> Scala 编译服务器中设置参数,但它无助于克服错误。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 的 OpenJDK 64 位 Windows 服务器虚拟机.100s10sro

Sbt 版本:1.2.8

斯卡拉版本: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...

Run Code Online (Sandbox Code Playgroud)

Son*_*nia 13

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

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

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

  • 我不需要重新启动 IntelliJ。当您尝试多种设置时,这可以节省大量时间...... (2认同)

Mzf*_*Mzf 0

转至配置\xe2\x86\x92 编辑自定义虚拟机选项并在其中添加您的更改

\n