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

2014-10-27 09:05:49 +08:00
 zxq1002
刚接了个工具,没什么文档,自己对java也不熟
3010 次点击
所在节点    问与答
3 条回复
songco
2014-10-27 09:30:32 +08:00
程序依赖? project依赖? 还是jar依赖? class依赖? 还是方法的依赖?

看描述想是class或者方法的依赖, 如果工程小或者设计的好可以从入口看...
有些UML工具也提供逆向生成时序图之类的, 不过我之前试过免费的好像都不太好用, 现在不知道有没有好用的, lz可以找一下.
应该还有一些专门的静态分析工具应该也可以生成这样的图.
lawrencexu
2014-10-27 11:01:40 +08:00
楼上提到的静态工具有个问题,就是用反射调用的不一定能反映出来。可以静态工具结合肉眼。
PrVitamin
2014-10-27 11:47:45 +08:00
有点麻烦,不过应该可以实现:
对整个Java项目构建AST树,在访问每个节点时存储调用关系
针对反射,辅之以字符串方法名匹配,特殊识别特殊处理

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/141722

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX