You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从项目生成的.jar文件生成Object UML图?

从JAR生成对象UML图的可行方案

好问题!这里得先明确:对象UML图和你之前用class-visualizer做的类图不一样——类图展示的是类的结构、继承/实现关系,而对象图是程序运行时具体实例的状态和关联关系,所以没法直接静态分析JAR生成,得结合运行时捕获才行。下面给你几个实用的方案:

  • 借助IDE的调试可视化功能(最省心)
    如果你用IntelliJ IDEA(社区版就支持),可以这么操作:

    1. 把目标JAR导入项目作为依赖,或者直接运行可执行JAR(如果是带main方法的)
    2. 在你想要捕获对象状态的代码位置设置断点,启动调试模式
    3. 当程序停在断点时,在调试窗口选中你要分析的对象,右键选择「Diagrams」→「Show Diagram」
    4. 在弹出的图中,你可以手动添加关联的对象(比如右键对象选「Add Related Elements」),IDEA会自动生成符合UML规范的对象实例图,还能导出为图片、PlantUML文件等格式
  • 自定义代码+PlantUML(灵活可控)
    如果需要批量或者自动化生成,可以自己写代码配合PlantUML:

    1. 编写一个Java程序,加载JAR中的类,调用对应逻辑创建出你需要分析的对象实例
    2. 用反射或者字节码工具(比如ASM)遍历对象的字段、引用关系,收集实例的ID、类型、关联对象等信息
    3. 把收集到的信息转换成PlantUML的对象图语法,比如:
      object "User实例1" as user1 {
        id: 1001
        name: "Silas"
      }
      object "Order实例3" as order3 {
        id: 2003
        amount: 99.9
      }
      user1 --> order3 : 拥有
      
    4. 用PlantUML工具渲染成图片或者PDF
  • 使用性能分析工具(适合复杂场景)
    像YourKit Java Profiler或者JProfiler这类专业工具,能在程序运行时追踪对象的创建、引用关系:

    1. 用工具attach到运行中的JAR程序(或者直接用工具启动JAR)
    2. 在工具中找到「对象引用」「实例视图」之类的功能,就能看到具体对象的关联结构,部分工具支持把这些结构导出为UML格式的对象图

注意:对象图是基于运行时特定时刻的状态生成的,所以必须让JAR中的代码实际运行起来,捕获你关心的那个时刻的实例状态,没法像类图那样仅通过静态分析JAR文件生成。

内容的提问来源于stack exchange,提问作者Silas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:06:54