如何确定最大堆栈大小限制?

时间:2011-09-20 15:32:54

标签: java size stack limit max

我想从Java中以编程方式确定堆栈的最大大小(-Xss设置的大小)。我该怎么做?

或者,由于我的Java模块也使用本机代码模块,我可以通过JNI执行此操作;但是如何?

2 个答案:

答案 0 :(得分:4)

使用ManagementFactory.getRuntimeMXBean().getInputArguments()访问传递给VM的所有参数。

答案 1 :(得分:0)

也许不是最佳实践,但肯定是直截了当的:我会编写一个递归方法来计算一个值,重复出现直到java.lang.StackOverflowError并查看计数器。

public class Test
{

static void recur(AtomicInteger start)
{
    start.incrementAndGet();
    recur(start);
}

public static void main(String[] args) throws ParseException
{
    AtomicInteger start=new AtomicInteger(0);
    try
    {
        recur(start);
    }
    catch (java.lang.StackOverflowError e)
    {
        /**/
    }
    System.out.println(start);

}
}