【问题标题】:How can I get all the called method in JAVA如何在 JAVA 中获取所有被调用的方法
【发布时间】:2014-06-04 10:29:35
【问题描述】:

我必须从开源软件中提取算法才能将这些算法包含在另一个软件中。

因此,我想知道当我启动其中一种算法时如何获取所有调用的方法...

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

【问题讨论】:

  • 使用 Profiler 工具,google profiler java eclipse
  • 所以你想复制粘贴别人的辛勤工作并在你的项目中使用它?这是抄袭,你知道的。
  • Heu 它是 GNU 许可证下的大学开源代码,所以是的,我将复制/粘贴其中的一部分,当然会提到原作者的名字。它明确提到“您可以重新分发和/或修改它”

标签: java eclipse methods


【解决方案1】:

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

【讨论】:

  • 您假设该算法是非常线性的:没有循环,没有 if/then/else... 这不是一般情况的解决方案。此外,您没有解释如何找到“最深的功能”。
【解决方案2】:

不知道是否可以满足您的需求,但是您可以使用 VisualVm 或 JProfiler 之类的分析器来跟踪在您的应用程序中执行的所有方法调用,here 您可以找到一个带有 visualVm 和 JasperReport 的示例,可以定义另一种方式一个切面(aspectJ 或 spring)拦截方法调用并记录它是你想要的看here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    相关资源
    最近更新 更多