3

是否可以生成应用程序的全局调用图?

基本上我试图找到应用程序中最重要的类。

我正在寻找 Java 的选项。

我试过 Doxy Gen,但它只生成继承图。

我当前的脚本:

#! /bin/bash

echo "digraph G
{"
find $1 -name \*.class |
    sed s/\\.class$// |
    while read x
    do
        javap -v $x | grep " = class" | sed "s%.*// *%\"$x\" -> %" | sed "s/$1\///" | sed "s/-> \(.*\)$/-> \"\1\"/"
    done
echo "}"
4

2 回答 2

2

javap -v一点 perl 会让你在类之间产生依赖关系。您可以使解析器稍微复杂一些,并获得方法之间的依赖关系。

更新:或者如果您有 *nix 或 cygwin,您可以获得依赖项列表

查找 com/akshor/pjt33/image -name \*.class |
  sed s/\\.class$// |
    读 x
    做
      javap -v $x | grep "= 类" | sed "s%.*// *%$x -> %"
    完毕

添加页眉和页脚,您可以将其传递给 dot 以呈现图形。如果您只想知道大多数其他类使用哪些类,正如您的问题所暗示的那样,那么

查找 com/akshor/pjt33/image -name \*.class |
  sed s/\\.class$// |
    读 x
    做
      javap -v $x | grep "= 类" | sed "s%.*// *%%"
    完成 |
      排序 | 唯一的-c | 排序 -n
于 2011-02-11T21:48:58.983 回答
1

对于高级代码分析,您可能想看看http://www.moosetechnology.org/

干杯
托马斯

编辑:应一般要求移至此处,请参阅:如何生成 Java 调用图

于 2011-02-11T21:39:50.413 回答