# LocalSoftwareManager **Repository Path**: wd34zc/LocalSoftwareManager ## Basic Information - **Project Name**: LocalSoftwareManager - **Description**: 基于本地文件系统的软件管理程序 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-09 - **Last Updated**: 2026-06-09 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # LocalSoftwareManager 基于本地文件系统的软件库管理工具。将散落的安装包、应用程序、压缩包统一收纳,建立属于自己的软件仓库。 ### 特色 - **纯本地,零依赖**:所有文件存储在本地磁盘,不依赖任何云服务,完全由你掌控 - **软件即文件夹**:每个软件一个文件夹,版本文件、图标、配置一目了然,可直接用资源管理器浏览 - **附录随软件走**:安装说明、注册机、破解补丁、使用教程等作为软件附录一起保存,换电脑或分享给同事时不会遗漏 - **自动识别**:拖入文件自动提取软件名、版本、平台架构,无需手动填写 - **一键安装**:安装包提权执行、压缩包解压 + 快捷方式 + 环境变量一气呵成 > 典型场景:下载了 `KeePassXC-2.7.11-win64.exe`,把注册机和破解说明 `.txt` 一起拖进去,之后任何时候重装系统,打开软件管理器就能找到完整的一套。 --- ## 添加软件 ### 支持的文件格式 | 扩展名 | 说明 | 默认平台 | |---|---|---| | `exe` | Windows 可执行文件 | win | | `msi` | Windows 安装程序包 | win | | `zip` | 压缩文件 | win | | `rar` | RAR 压缩文件 | win | | `7z` | 7z 压缩文件 | win | | `iso` | 光盘镜像文件 | win | | `tar` | Tar 归档文件 | linux | | `gz` | Gzip 压缩文件 | linux | | `tar.gz` | 压缩的 Tar 归档 | linux | ### 添加方式 - **拖拽添加**:直接将文件拖入主窗口,自动复制到待添加目录并打开添加界面 - **按钮添加**:点击"添加软件"按钮,手动将文件放入 `.new-softwares` 目录后操作 - 支持批量添加,多个文件逐个处理 ### 填写软件信息 | 字段 | 说明 | 是否必填 | |---|---|---| | 软件名 | 从文件名自动提取,也可手动输入或从下拉候选选择 | 必填 | | 版本号 | 从文件名自动提取,也可手动输入或从下拉候选选择 | 必填 | | 描述 | 从 PE 文件信息自动读取,可手动编辑 | 选填 | | 平台 | `win` / `linux`,自动检测 | 必选 | | 架构 | `x64` / `x32` / `arm`,自动检测,可为空 | 可选 | | 应用类型 | 安装包 / 应用程序 / 压缩包,自动检测 | 必选 | #### 平台与架构自动检测规则 从文件名关键字自动判断: | 文件名关键字 | 平台 | 架构 | |---|---|---| | `win` / `windows` + `x64` / `amd64` / `x86_64` | win | x64 | | `win32` / `x86`(不含 `x86_64`) | win | x32 | | `win` / `windows`(无架构关键字) | win | *(空)* | | `.tar.gz` / `.tar` / `.gz` + `x64` / `amd64` | linux | x64 | | `.tar.gz` / `.tar` / `.gz`(无架构关键字) | linux | *(空)* | | `aarch64` / `arm64` / `arm` | linux | arm | #### 旧格式兼容 旧版本使用合并的平台值(如 `win64`),升级后自动拆分为平台 + 架构: | 旧值 | → 平台 | → 架构 | |---|---|---| | `win64` | win | x64 | | `win32` | win | x32 | | `linux64` | linux | x64 | | `win` / `linux` | 原值 | *(空)* | ### 统一文件命名 添加后文件自动重命名为统一格式: ``` {软件名}-{版本号}-{平台}[-架构].{扩展名} ``` 示例: - `KeePassXC-2.7.11-win-x64.exe` — 有架构 - `Notepad++-8.5.0-win.exe` — 无架构 - `Redis-7.0.0-linux-x64.tar.gz` — Linux ### 压缩包特殊处理 添加压缩包(zip/rar/7z)时,可额外配置: - **可执行文件**:压缩包内的主程序路径,如 `KeePassXC.exe`,支持逗号分隔多个。安装后自动创建开始菜单快捷方式 - **环境变量路径**:需加入系统 PATH 的目录,如 `bin/`,支持逗号分隔多个 两者均可通过"浏览"按钮可视化勾选压缩包内部文件/目录。 ### 软件附录 每个软件版本可以附带任意文件作为"附录"——安装说明、注册机、破解补丁、使用教程等。附录与软件绑定存储,不会丢失。 - 将文件放入与软件同名的 `_crack` 文件夹即可自动关联(支持文件和子目录) - 安装/执行软件时自动将附录复制到桌面 - 支持拖拽批量添加附录文件 - 也可用于存放 Portable 版的配置文件、插件等 --- ## 管理软件 ### 软件列表 - 左侧列表展示所有已安装软件,显示图标、名称、描述、版本数量 - 搜索框实时过滤,支持按软件名和描述搜索 - 键盘输入自动聚焦搜索框 ### 软件详情(右侧面板) - **图标**:显示软件图标,点击可更换(支持本地文件、URL下载、exe/dll提取、拖拽导入) - **名称**:软件名称(可选中复制) - **描述**:点击"编辑"按钮修改,保存到 `info.ini` - **目录**:点击"打开位置"直接在资源管理器中打开软件文件夹,所有文件一目了然 - **版本列表**:展示所有版本,按添加时间倒序排列 > 软件目录即普通文件夹,可以用资源管理器直接浏览、复制、备份。换电脑时直接拷贝整个软件库目录即可。 ### 版本管理 版本列表显示每个版本的详细信息: | 列 | 说明 | |---|---| | 版本号 | 软件版本,如 `8.0.2310.11` | | 类型 | 安装包 / 应用程序 / 压缩包 | | 扩展名 | 文件格式,如 `exe`、`zip` | | 平台 | win / linux | | 架构 | x64 / x32 / arm / *(空)* | | 文件大小 | 格式化显示 | | 添加时间 | 首次添加的时间戳 | | 破解 | 补丁下载/打开按钮 | | 操作 | 安装、执行、卸载等 | #### 各类型版本操作 **安装包(exe/msi):** 存放系统软件的安装程序,如 `Everything-1.4.exe`、`7z2201-x64.msi`。 - "下载并执行" / "执行" — 以管理员权限运行安装程序,开始系统安装流程 - "打开位置" — 在资源管理器中定位安装包文件 > ⚠️ 本程序不负责检测软件是否已安装,也不支持卸载已安装的系统软件。如需卸载,推荐使用 [Geek Uninstaller](https://geekuninstaller.com/)。 **应用程序:** 存放免安装的独立可执行程序,如 `Everything.exe`、`HWiNFO64.exe`。这类软件无需安装,双击即可运行。 - "下载并安装" — 将程序复制到应用目录,并在开始菜单创建快捷方式。如果安装了 [uTools](https://u.tools/),安装后即可在 uTools 中搜到 - "打开所在位置" — 在资源管理器中定位程序文件 - "卸载" — 删除本地程序文件,同时移除开始菜单中的快捷方式 **压缩包(zip/rar/7z):** 主要针对绿色便携版软件和免安装软件,如 `KeePassXC-2.7.11.zip`。支持两项额外配置: - **可执行文件**:压缩包内需要创建开始菜单快捷方式的主程序,如 `KeePassXC.exe`,支持逗号分隔多个 - **环境变量路径**:需要加入系统 PATH 的目录,如 `bin/`,支持逗号分隔多个(常用于便携版 JDK、Python 等) 操作流程:解压到指定目录 → 扁平化单层包裹目录 → 创建开始菜单快捷方式 → 配置环境变量。卸载时逆向操作:移除环境变量 → 删除开始菜单快捷方式 → 删除解压目录。 **Linux 文件(tar/gz/iso):** - "下载到桌面" — 直接复制文件到桌面,不执行其他操作 #### 右键菜单 版本行右键菜单提供: - **编辑** — 修改版本号、平台、架构、可执行文件、环境变量路径 - **删除** — 删除版本文件及配置 - **重新添加** — 移回待添加目录重新配置 ### 软件级别操作 - **删除软件**:右键软件列表项,删除整个软件目录(含所有版本) - **刷新**:强制重新扫描磁盘,更新列表 - **配置**:修改软件库目录、安装包目录、应用下载目录等 ### 缓存机制 - 软件列表自动缓存到 SQLite 数据库,启动时优先从缓存加载 - 磁盘目录数变化时自动触发重新扫描 - 数据结构升级时自动重建缓存 --- ## 构建打包 ### 环境要求 - JDK 1.8(`C:\Program Files\Java\jdk1.8.0_202`) - Maven(通过 IntelliJ IDEA 内置,或独立安装) - [launch4j](http://launch4j.sourceforge.net/)(已包含在 `launch4j/` 目录) ### 编译 JAR ```bash set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_202 mvn clean package -Dmaven.test.skip=true ``` 输出:`target\local-software-manager-1.0.jar`(Spring Boot 可执行 JAR) ### 打包 EXE 1. 将 JAR 和 JRE 复制到 `dist/` 目录: ```bash mkdir dist\jre xcopy /e /q /h "%JAVA_HOME%\jre\*" dist\jre\ copy target\local-software-manager-1.0.jar dist\ copy app.ico dist\ ``` 2. 使用 launch4j 生成 EXE: ```bash launch4j\launch4jc.exe launch4j-config.xml ``` 输出:`dist\LocalSoftwareManager.exe` ### launch4j 配置要点 ```xml false gui app.ico jre 1.8 1.0.0.0 LocalSoftwareManager ... ``` ### 一键打包 运行 `pack.bat` 自动完成以上所有步骤。 ### 发布说明 发布时将整个 `dist/` 目录打包为 zip。用户解压后运行 `LocalSoftwareManager.exe` 即可,无需安装 Java。推荐为 EXE 创建桌面快捷方式(`create-shortcut.ps1`)。