作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
是否可以生成应用程序的全局调用图?
基本上,我试图找到应用程序中最重要的类。
我正在寻找 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 "}"
最佳答案
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
添加页眉和页脚,您可以将其传递给 dot 以呈现图形。如果您只是想知道大多数其他类使用了哪些类,正如您的问题所暗示的那样,那么
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
关于java - 如何为 java 项目生成调用图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4974320/
我是一名优秀的程序员,十分优秀!