如何在JAVA中获取所有被调用的方法

如何在JAVA中获取所有被调用的方法,java,eclipse,methods,Java,Eclipse,Methods,我必须从一个开源软件中提取算法,以便在另一个软件中包含这些算法 因此,我想知道,当我启动一个算法时,如何获得调用的所有方法 我试着在调试模式下运行它,一步一步地导航,并记下我板上所有调用的方法,但它相当长。。。我正在使用eclipse,我想知道它是否可以自动完成。如果它是开源的,一种快速而肮脏的方法是在调用链中的“最深”函数中抛出一个异常,然后捕获它并使用printStackTrace;或者将其设置为RuntimeException,您甚至不必捕获它,只需运行该程序一次,调用堆栈就会为您打印。不

我必须从一个开源软件中提取算法,以便在另一个软件中包含这些算法

因此,我想知道,当我启动一个算法时,如何获得调用的所有方法


我试着在调试模式下运行它,一步一步地导航,并记下我板上所有调用的方法,但它相当长。。。我正在使用eclipse,我想知道它是否可以自动完成。

如果它是开源的,一种快速而肮脏的方法是在调用链中的“最深”函数中抛出一个异常,然后捕获它并使用printStackTrace;或者将其设置为RuntimeException,您甚至不必捕获它,只需运行该程序一次,调用堆栈就会为您打印。

不知道是否符合您的需要,但您可以使用VisualVm或JProfiler之类的探查器跟踪应用程序中执行的所有方法调用,您可以找到VisualVm和JasperReport的示例,另一种方法可能是定义一个方面(aspectJ或spring)来截取方法调用并记录它,如果您想查看

使用探查器工具google
Profiler java eclipse
那么您想复制粘贴其他人的努力成果并在您的项目中使用它?这是剽窃,你知道。Heu这是一个GNU许可下的大学开源代码,所以是的,我要复制/跳过其中的一些部分,当然要提到原始作者的名字。它清楚地提到“你可以重新分配和/或修改它”你假设算法是非常线性的:没有循环,没有if/then/else。。。这不是一般情况下的解决方案。此外,您没有解释如何找到“最深的函数”。