zxq1002
V2EX  ›  问与答

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

  •  
  •   zxq1002 · Oct 27, 2014 via Android · 4256 views
    This topic created in 4393 days ago, the information mentioned may be changed or developed.
    刚接了个工具,没什么文档,自己对java也不熟
    songco
    songco
    Oct 27, 2014
    1
    程序依赖? project依赖? 还是jar依赖? class依赖? 还是方法的依赖?

    看描述想是class或者方法的依赖, 如果工程小或者设计的好可以从入口看...
    有些UML工具也提供逆向生成时序图之类的, 不过我之前试过免费的好像都不太好用, 现在不知道有没有好用的, lz可以找一下.
    应该还有一些专门的静态分析工具应该也可以生成这样的图.
    lawrencexu
    lawrencexu
    Oct 27, 2014
    2
    楼上提到的静态工具有个问题,就是用反射调用的不一定能反映出来。可以静态工具结合肉眼。
    PrVitamin
    PrVitamin
    Oct 27, 2014
    3
    有点麻烦,不过应该可以实现:
    对整个Java项目构建AST树,在访问每个节点时存储调用关系
    针对反射,辅之以字符串方法名匹配,特殊识别特殊处理
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   4468 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 01:13 · PVG 09:13 · LAX 17:13 · JFK 20:13
    ♥ Do have faith in what you're doing.