如何查找在Java类中使用某种方法的所有执行路径?

时间:2013-02-12 20:42:18

标签: java code-analysis static-analysis execution

给定某个java方法,我需要确定从入门类到目标方法的所有执行路径。

示例:

目标方法:MyClass.myMethod()

执行路径

EntryClass - 调用 - > Class1.method1() - 调用 - > Class2.method1() - 调用 - > Class2.method2() - 调用 - > MyClass.myMethod()

EntryClass - 调用 - > Class1.method1() - 调用 - > Class3.method1() - 调用 - > Class2.method2() - 调用 - > MyClass.myMethod()

EntryClass - 调用 - &gt; Class3.method1() - 调用 - &gt; MyClass.myMethod() < / p>

是否有可用的工具可以在我的代码库上运行静态分析来确定所有这些代码执行路径?

2 个答案:

答案 0 :(得分:2)

eclipse的呼叫层次结构是否符合要求?它显示方法的所有调用者的树,或方法的所有被调用者(它只显示源代码可用的调用者或被调用者,并且不显示反射调用)。

要打开它,只需单击方法名称,然后按 Ctrl Alt H

答案 1 :(得分:0)

FindBugs由马里兰大学编写。它是

  

使用静态分析查找Java代码中的错误的程序

Cobetura

  

免费的Java工具,用于计算测试访问的代码百分比。它可用于识别Java程序的哪些部分缺少测试覆盖率。

直到我工作的一位高级开发人员进行代码审查之前,我才听说过他们。您可以将它们安装为maven插件。运行命令

  

mvn site

运行代码覆盖率报告。我不能告诉你有关实际配置它的事情,因为我没有这样做。他们的文档应该是相当不错的。