plantuml在vscode中预览失败的四大主因是java、graphviz未正确安装配置,文件后缀非.puml,以及@startuml未独占一行;需依次验证终端java -version和dot -v输出、path路径、vscode中plantuml.java与plantuml.jar配置、文件扩展名及语法起始格式。

装完插件不等于能预览,PlantUML 在 VSCode 里跑不起来,90% 是因为本地依赖没到位或文件触发条件没满足——Java、Graphviz、后缀名、@startuml 格式,四者缺一不可。
安装 PlantUML 插件后预览空白?先确认 Java 和 Graphviz 是否真可用
VSCode 的 PlantUML 插件本身不渲染图,它只是个“调度员”,真正干活的是你系统里的 java 和 dot 命令。常见现象是右键点 Preview Diagram 没反应,或弹出 java not found / dot command not found 错误。
- 在终端执行
java -version和dot -V,必须都能输出版本号(注意是大写 V) - Windows 用户重点检查 PATH:确保包含
java.exe所在目录(如C:\Program Files\Java\jdk-17\bin)和dot.exe所在目录(如C:\Program Files\Graphviz\bin) - VSCode 设置里搜
plantuml.java,确认该配置项指向的路径和你终端里which java输出一致;多 JDK 环境下容易指错 - Graphviz 安装器勾选“Add Graphviz to the system PATH”常失效,建议手动加 PATH 更可靠
.puml 文件保存后仍不触发预览?检查后缀与语法起始标记
VSCode 不会随便对任意文本文件启用 PlantUML 预览,它只认特定后缀 + 严格格式的代码块。即使你写了完整的时序图语法,只要文件或起始行不对,右侧就是白板。
- 文件必须保存为
.puml后缀(.uml或.txt默认不识别,除非手动改files.associations) -
@startuml必须独占一行,前面不能有空格、制表符或注释(// @startuml或@startuml都失败) -
@enduml同理,也得独占一行,结尾不能带多余字符 - 快捷键优先用
Ctrl+Alt+D(Windows/Linux)或Cmd+Option+D(macOS),右键菜单有时响应延迟或失效
中文乱码、字体糊成一片、SVG 渲染异常?调 exportFormat 和字体参数
时序图里出现中文角色名或消息内容时,预览图文字变方块、箭头断裂、甚至整个图不显示——这基本不是 PlantUML 语法问题,而是 SVG 渲染链路中编码或字体缺失导致的。
- VSCode 设置中搜
plantuml.exportFormat,强制设为svg(别用png,缩放模糊且不支持矢量缩放) - 在用户 settings.json 中加这一行:
"plantuml.javaArgs": ["-Dfile.encoding=UTF-8"],避免中文路径或注释引发解码错误 - 在
@startuml后第一行加上字体声明,例如:skinparam defaultFontName "Microsoft YaHei"(Windows)或skinparam defaultFontName "PingFang SC"(macOS) - 如果用在线服务器(如
https://www.plantuml.com/plantuml),字体声明仍需保留,服务端会按此查找可用字体
修改代码后预览不自动更新?autorefresh 设置常被忽略
很多人以为“实时预览”=敲字就刷新,其实 PlantUML 插件默认监听的是“保存事件”,不是键盘输入事件。如果你改了代码但没保存,预览不会变;更隐蔽的问题是 autorefresh 开关被关掉了。
- VSCode 设置中搜
plantuml.preview.autorefresh,确认值为true(默认是false) - 该选项只控制“保存后是否自动刷新预览窗口”,不影响快捷键手动触发
- 某些旧版插件或自定义 server 地址下,autorefresh 可能失效,此时可改用保存后按一次
Ctrl+Alt+D作为稳定替代 - 大型时序图(超 50 行)可能因渲染耗时导致“看起来没更新”,可观察右下角状态栏是否有 PlantUML 正在处理提示
最易被跳过的其实是 @startuml 的独占行要求和 .puml 后缀——哪怕 Java 和 Graphviz 全对,这两点错一个,预览就永远是空的。调试时优先看文件名和第一行,比反复重装插件快得多。











