是否可以生成应用程序的全局调用图?
基本上我试图找到最重要的应用程序类。
我正在寻找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 "}"
答案 0 :(得分:2)
javap -v
和一些perl将获得类之间的依赖关系。您可以使解析器稍微复杂一些,并在方法之间获得依赖关系。
更新:或者如果您有* nix或cygwin,您可以获得依赖项列表
find com/akshor/pjt33/image -name \*.class | sed s/\\.class$// | while read x do javap -v $x | grep " = class" | sed "s%.*// *%$x -> %" done
添加页眉和页脚,您可以将其传递给点以呈现图形。如果你只是想知道大多数其他类使用哪些类,正如你的问题所暗示的那样,那么
find com/akshor/pjt33/image -name \*.class | sed s/\\.class$// | while read x do javap -v $x | grep " = class" | sed "s%.*// *%%" done | sort | uniq -c | sort -n
答案 1 :(得分:1)
对于高级代码分析,您可能需要查看http://www.moosetechnology.org/
干杯
托马斯
(编辑:按一般要求向下移动,请参阅:How to generate a Java call graph)