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

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

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

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

也许不是最佳实践,但肯定是直截了当的:我会写一个递归方法来计算一个值,重复出现直到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); } }