一尘不染

Java堆栈溢出错误-如何在Eclipse中增加堆栈大小?

java

我正在运行一个用Java在Eclipse中编写的程序。对于很大的输入,该程序具有很深的递归级别。对于较小的输入,程序运行正常,但是在给出较大的输入时,出现以下错误:

Exception in thread "main" java.lang.StackOverflowError

可以通过增加Java堆栈大小来解决此问题,如果可以,那么如何在Eclipse中做到这一点?

更新:

@乔恩·斯基特

该代码递归地遍历解析树以建立数据结构。因此,例如,代码将使用解析树中的一个节点来做一些工作,并在该节点的两个子节点上调用自身,将其结果组合起来以给出树的整体结果。

递归的总深度取决于解析树的大小,但是当递归调用的数量达到1000时,代码似乎会失败(没有更大的堆栈)。

我也很确定代码不会因为错误而失败,因为它适用于少量输入。


阅读 594

收藏
2020-03-10

共1个答案

一尘不染

打开应用程序的运行配置(运行/运行配置…,然后在“ Java应用程序”中查找应用程序条目)。

该参数选项卡中有一个文本框VM参数,输入-Xss1m(或最大堆栈大小更大参数)。默认值为512 kByte(SUN JDK 1.5-不知道供应商和版本之间是否有所不同)。

2020-03-10