V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
zxq1002
V2EX  ›  问与答

怎么能从现有的 java 工程生成各个程序的调用关系?

  •  
  •   zxq1002 · 2014-10-27 09:05:49 +08:00 via Android · 3198 次点击
    这是一个创建于 3688 天前的主题,其中的信息可能已经有所发展或是发生改变。
    刚接了个工具,没什么文档,自己对java也不熟
    songco
        1
    songco  
       2014-10-27 09:30:32 +08:00
    程序依赖? project依赖? 还是jar依赖? class依赖? 还是方法的依赖?

    看描述想是class或者方法的依赖, 如果工程小或者设计的好可以从入口看...
    有些UML工具也提供逆向生成时序图之类的, 不过我之前试过免费的好像都不太好用, 现在不知道有没有好用的, lz可以找一下.
    应该还有一些专门的静态分析工具应该也可以生成这样的图.
    lawrencexu
        2
    lawrencexu  
       2014-10-27 11:01:40 +08:00
    楼上提到的静态工具有个问题,就是用反射调用的不一定能反映出来。可以静态工具结合肉眼。
    PrVitamin
        3
    PrVitamin  
       2014-10-27 11:47:45 +08:00
    有点麻烦,不过应该可以实现:
    对整个Java项目构建AST树,在访问每个节点时存储调用关系
    针对反射,辅之以字符串方法名匹配,特殊识别特殊处理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2790 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 11:55 · PVG 19:55 · LAX 03:55 · JFK 06:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.