java.lang.StackOverflowError 异常处理
Posted strongyoung88
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.lang.StackOverflowError 异常处理相关的知识,希望对你有一定的参考价值。
今天在使用maven打包项目的时候,报了以下异常:
[ERROR] error: java.lang.StackOverflowError
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:5365)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5472)
[INFO] at scala.tools.nsc.typechecker.Typers$Typer.typedQualifier(Typers.scala:5480)
[INFO] at scala.tools.nsc.transform.Erasure$Eraser.adaptMember(Erasure.scala:644)
[INFO] at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:698)
看到这个异常的第一反应,就是检查代码中是否有大量的递归调用,结果发现就是没有。
然后想到的是JVM默认的栈大小,于是想修改JVM参数,这个参数可以在maven的pom.xml文件中进行配置,如下:
<build>
<plugins>
<plugin>
<groupId>org.scala-tools</groupId>
<artifactId>maven-scala-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</execution>
</executions>
<configuration>
<scalaVersion>$scala.version</scalaVersion>
<args>
<arg>-target:jvm-1.8</arg>
</args>
<jvmArgs>
<jvmArg>-Xss2048K</jvmArg>
</jvmArgs>
</configuration>
</plugin>
</plugins>
</build>
其中,以下片段为修改栈大小:
<jvmArgs>
<jvmArg>-Xss2048K</jvmArg>
</jvmArgs>
重新打包,问题解决。
以上是关于java.lang.StackOverflowError 异常处理的主要内容,如果未能解决你的问题,请参考以下文章