我需要操纵项目中Java代码的控制流图。什么可能是一个很好的Java库来生成Java中的控制流图。到目前为止,我发现了一些eclipse插件(严重依赖于eclipse API)和独立工具(无法嵌入我的代码中)。
答案 0 :(得分:5)
执行此操作的工具是Soot,此问题与Tool for generating control flow in Java
重复答案 1 :(得分:1)
jSonde将根据您的实际运行代码创建序列图(这可能比源代码更有用,因为源分析不会显示特定于实现的功能)。
javacalltracer做了类似的事情。
大多数工具都集成到Eclipse /类似工具中,因此他们可以访问AST,这使得这些事情变得非常简单。
从字节代码中提取信息实际上并不是非常复杂(这是一项有趣的练习)。或者使用AspectJ并自行创建运行时信息。
编辑原始答案,仍然有效。
JGraph是开源的,非常酷。
JDiagram是Swing组件,商业产品。
答案 2 :(得分:0)
一些例子:
如果不是您想要的,那么您的问题需要更多信息。大多数这些选项(以及更多)已经在StackOverflow上的其他类似问题中得到了解决,即使它们不是特定于控制流图的。例子:
答案 3 :(得分:0)
我会把另一个工具扔进混音中。
Atlas是一个Eclipse插件,支持程序分析。它有一个可交换的图形数据库,包括控制流图(以及数据流和其他关系)。