@startuml offline-installer-logic title 离线安装程序执行逻辑 start :读取程序所在目录; partition "资源检查" { :读取 resources.json; note right 包含: - uv 安装包路径 - Java JRE 安装包路径 - 校验和信息 end note :检查必需资源文件; if (所有资源存在?) then (是) :验证文件校验和; if (校验通过?) then (是) :继续安装; else (否) :报告损坏的文件; :提示重新下载; stop endif else (否) :列出缺失的资源; :显示下载链接; stop endif } partition "安装模式" { if (有 --silent 参数?) then (是) :静默安装模式; :使用默认配置; else (否) :交互式安装; :显示安装选项; :等待用户确认; endif } partition "执行安装" { :=== 安装 uv ===; if (Windows?) then (是) :解压 uv Windows 包; :添加到用户 PATH; else (Linux) :解压 uv Linux 包; :安装到 ~/.local/bin; :更新 shell 配置; endif :验证 uv 可用; :=== 安装 Python ===; :运行 uv python install; note right: 使用 uv 管理 Python :验证 Python 可用; :=== 安装 Java JRE ===; if (Windows?) then (是) if (MSI 安装包?) then (是) :运行 MSI 静默安装; else (ZIP 包) :解压到指定目录; :配置 JAVA_HOME; :添加到 PATH; endif else (Linux) :解压 tarball 到 /opt/java; :创建符号链接; :更新 alternatives; endif :验证 Java 可用; } partition "aide 配置" { :检测 aide-program 位置; :添加 aide 到 PATH; if (Windows?) then (是) :更新用户环境变量; else (Linux) :追加到 shell 配置文件; endif } :=== 安装验证 ===; :显示安装结果; note right - uv 版本 - Python 版本 - Java 版本 - aide 路径 end note :运行 aide env ensure --runtime; if (全部通过?) then (是) :安装成功; :显示后续使用提示; else (否) :显示失败项; :提供故障排除建议; endif stop @enduml