【问题标题】:Application to generate Java class hierarchy diagram [closed]生成Java类层次图的应用程序[关闭]
【发布时间】:2009-07-22 23:00:30
【问题描述】:

寻找一种工具:

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

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

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

有什么想法吗?

【问题讨论】:

  • 如果您找到解决方案,我会很感兴趣。我所知道的能够完成所有这些事情的程序既不是开源的,也不是轻量级的(也不是免费的)。
  • 我的开源库 FastClasspathScanner 可以生成类图(类层次结构)可视化等。生成的图不仅显示了表示“扩展”、“实现”和“具有注释”关系的边,还显示了“具有类型字段”。在这里查看我的答案:*.com/a/34354003/3950982

标签: java visualization class-hierarchy call-graph


【解决方案1】:

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

【讨论】:

  • 据作者class-visualizer.net是最新版本的类可视化工具。最新版本 0.7.0 仅适用于 Java 7+
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

    • 我的基本观点仍然成立。任何现有的 OSS 产品都不太可能满足您的要求。
    • 带有一些插件的maven可能是一个更好的解决方案。 JXR 比图表更有用。
    最近更新 更多