前言
最近在使用 Struts2 扫描工具,打包好的Struts2.jar只能通过start.bat批处理脚本执行,双击 jar 文件完全没反应 。
手动修改文件打开方式、修改注册表都比较麻烦,偶然发现 Jarfix 工具,一键修复 jar 文件关联,修复后直接双击 jar 就能运行,不需要额外写 bat 脚本,这里记录完整操作流程。
问题现象
- 在 CMD 执行命令
javaw -jar Struts2.jar,工具正常启动 - 直接双击
Struts2.jar,无任何窗口弹出、程序不运行 - 只能编写
start.bat,把javaw -jar Struts2.jar写在批处理里面,每次需要双击 bat 启动

根本原因
Windows 的 jar 文件注册表关联缺失 -jar 参数。就算设置默认打开程序为javaw.exe,系统调用时也不会自动带上-jar,所以无法执行 jar 程序。
bat 脚本本质就是手动执行
javaw -jar xxx.jar。Jarfix 工具自动修改注册表,给 jar 关联补上-jar "%1" %*参数。
Jarfix 一键修复方案(推荐)
1. Jarfix 介绍
Jarfix 是免费、免安装小工具,专门修复 Windows 下.jar 文件关联损坏问题,自动读取本机 Java 路径,一键修改注册表,不需要手动操作复杂注册表项。
2. 官方下载地址
官网页面:
https://johann.loefflmann.net/en/software/jarfix/index.html#Download
直链下载 jarfix.exe:
https://johann.loefflmann.net/downloads/jarfix.exe
注意:仅从官网下载,不要从第三方站,避免篡改文件。工具只有几十 KB,下载完成即可使用,无需安装,用完可以直接删除。
3. 操作步骤
- 下载
jarfix.exe保存到本地 - 右键 jarfix.exe → 豆包说是要管理员运行,我是直接双击运行
- 弹出 UAC 用户账户控制,点击【是】
- 弹出成功提示框:
The .jar suffix (Java Archive) has been registered successfully.,点击 OK - 修复完成!直接双击
Struts2.jar,程序直接启动,不再需要 start.bat
验证方法
修复完成后直接双击你的 jar 包测试。
如果出现黑窗口一闪而过,说明程序报错,使用 CMD 手动执行查看报错信息:
java -jar Struts2.jar
备选方案(Jarfix 失效时手动注册表修改)
-
Win+R 输入
regedit打开注册表编辑器 -
定位路径
HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command
-
修改【默认】值,填写(路径替换为你本机 jdk 的 javaw.exe)
"C:\jdk1.8.0_xxx\bin\javaw.exe" -jar "%1" %*
-
保存,关闭注册表,双击 jar 测试