JVM打印堆栈信息的方式有两种:使用Throwable类的printStackTrace()方法和使用Thread类的getStackTrace()方法。
try {
// 代码块
} catch (Throwable throwable) {
throwable.printStackTrace();
}
这种方式会将堆栈信息直接打印到控制台。
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
for (StackTraceElement stackTraceElement : stackTraceElements) {
System.out.println(stackTraceElement.toString());
}
这种方式会将堆栈信息遍历打印出来。
注意:这两种方式都只是在控制台打印堆栈信息,如果需要将堆栈信息保存到文件或者进行其他处理,可以使用相关的IO操作。