应用程序生成Java类层次结构图

寻找一种工具:

  • 产生视觉上令人愉悦(不是花哨)的正交结构图层次结构
  • 输出高质量的PNG图像(300dpi +)
  • 可视化区分类,抽象类,接口和枚举类型(最好通过颜色)
  • 交互式用户界面
  • 允许从图中修剪包和/或单个类
  • 种子(例如, 文件»打开 )使用一组:
    • 目录
    • JAR文件
    • 单个源文件
    • 个别编译类
  • 对类依赖关系执行全自动分析
  • 搜索类路径以尽可能多地解析未满足的依赖项
  • 使用单个可执行文件
  • 轻巧(~5MB)和快速(平均1.5GHz机器在一秒钟内加载)
  • 很简单(在10次点击下生成图表)
  • 快速(几秒钟内绘制100个对象)
  • 易于使用(界面最小,专注于图形生成)
  • 是OSS还是GPL
  • (可选)生成调用图层次结构

无法完成此任务的工具包括:

  • Doxygen + GraphViz(或点)
  • 日食
  • UML建模者
  • Java的结构分析(无法解析源文件)
  • JUDE社区(awkard界面,不适合自动生成)
  • 集成开发环境(太复杂,使用太多内存)

有任何想法吗?

答案可能是“没有这样的OSS /免费应用程序”。 为什么? 因为:

  1. 大多数想要大量类的inheritance图的人已经在IDE或类似的上下文中工作。 因此,OSS开发人员很少有动力制作这样的工具。
  2. 几乎不可能自动创建大量类的视觉吸引人的图表。

我建议你放宽你的要求。 我的意思是,使用大型IDE或UML建模器有什么问题? 记忆很便宜。 等待几秒钟加载/运行图表有什么问题? 耐心的蚱蜢! 有2天培训的高中学生将会看到10,000多个课程的源代码库?

Class Visualizer似乎满足您的所有要求(除了将图表保存为PNG)。

Netbeans UML插件将满足您的一些要求。

  • 产生视觉上吸引人的图形层次结构: 品味问题
  • 写出高质量的PNG图像(300dpi +): 我不知道
  • 可视化区分类,抽象类,接口和枚举类型: 是的,因为它使用UML
  • 交互式用户界面: 是的
  • 允许从图中修剪包和/或单个类:是的
  • 种子(例如,文件»打开)使用一组: 它与netbeans项目一起使用
    • 目录
    • JAR文件
    • 单个源文件
    • 个别编译类
  • 执行全自动分析: 也许
  • 使用单个可执行文件: 不适用,它是Netbeans的插件
  • 轻巧快速: 像netbeans一样
  • 简单,快速,易于使用: 取决于用户
  • 是OSS还是GPL: 我认为它是OSS,当然它在免费饮料中是免费的
  • (可选)生成一个调用图层次结构(除了类层次结构): 我不认为它