我正在尝试在 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 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
视窗 10 10.0
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...
最佳答案
我在 Intellij IDEA Ultimate 2020.1.1 上遇到了同样的问题。
以上选项都不适合我。但是通过上述答案的提示,我发现 Scala 编译器也有不同的设置,更改它后错误停止了。
我增加了 Scala 编译器服务器的堆栈跟踪的大小:Preferences
-> Compiler
-> Scala Compiler
-> Scala Compiler Server
.然后,相应地更改 JVM 选项(在我的情况下, -server -Xss1024m
)。
关于scala - 如何修复错误 : "org.jetbrains.jps.incremental.scala.remote.ServerException java.lang.StackOverflowError",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56066899/