【发布时间】:2011-12-28 19:38:02
【问题描述】:
我需要为项目中的 Java 代码操作控制流图。什么可能是一个很好的 Java 库,可以在 Java 中生成控制流图。到目前为止,我已经找到了几个 eclipse 插件(严重依赖 eclipse API)和独立工具(不能嵌入到我的代码中)。
【问题讨论】:
标签: java graph control-flow control-flow-graph
我需要为项目中的 Java 代码操作控制流图。什么可能是一个很好的 Java 库,可以在 Java 中生成控制流图。到目前为止,我已经找到了几个 eclipse 插件(严重依赖 eclipse API)和独立工具(不能嵌入到我的代码中)。
【问题讨论】:
标签: java graph control-flow control-flow-graph
做这件事的工具是 Soot,这个问题是 Tool for generating control flow in Java 的副本
【讨论】:
我将添加另一个工具。
Atlas 是一个支持程序分析的 Eclipse 插件。它有一个可查询的图数据库,包括控制流图(以及数据流和其他关系)。
【讨论】:
jSonde 将从您的实际运行代码创建序列图(可以说这比源代码更有用,因为源代码分析不会显示特定于实现的功能)。
javacalltracer 做了类似的事情。
大多数工具都集成到 Eclipse/类似工具中,因此它们可以访问 AST,这使得这些事情变得非常简单。
自己从字节码中提取信息实际上并不复杂(这是一个有趣的练习)。或者使用 AspectJ 检测并自己创建运行时信息。
编辑原始答案,仍然有效。
JGraph 是开源的,非常酷。
JDiagram 是一个 Swing 组件,商业产品。
【讨论】: