我正在努力追踪一个bug,知道哪个方法调用了某个方法会对我有很大帮助。是否有一种简单的方法从Java中获取调用层次结构?Java只是应用程序的一小部分,因此我无法在Eclipse / NetBeans中编译和运行整个应用程序,因此我无法访问IDE调试器的调用层次结构。
我正在努力追踪一个bug,知道哪个方法调用了某个方法会对我有很大帮助。是否有一种简单的方法从Java中获取调用层次结构?Java只是应用程序的一小部分,因此我无法在Eclipse / NetBeans中编译和运行整个应用程序,因此我无法访问IDE调试器的调用层次结构。
Thread.currentThread().getStackTrace();
或者Exception ex = new Exception();
ex.printStackTrace();
它相对比较慢,但对于调试目的来说还可以。 这里是API文档。
Thread.currentThread().getStackTrace()
,它将为您提供在调用此调用过程中调用方法的位置。微妙之处在于,在此调用期间,您可能不会通过每个代码路径运行。如果您看到特定行为并想知道如何到达那里,请使用getStackTrace()
选项。