带命令行参数的Java JAR应用制作Windows服务安装包的工具咨询
可实现需求的工具及操作方案
1. WinSW(Windows Service Wrapper)
- 轻量开源工具,专门用于将任意可执行程序封装为Windows服务,原生适配Java应用场景
- 操作步骤:
- 下载对应系统架构的
winsw.exe,重命名为和服务匹配的名称,例如MyJavaAppService.exe - 在同目录下新建同名XML配置文件
MyJavaAppService.xml,配置中可直接指定JAR路径、JVM参数、需要传入的两个命令行参数,配置参考片段如下:
<executable>java</executable><arguments>-jar "C:\部署路径\你的应用.jar 参数1 参数2"</arguments>- 执行
MyJavaAppService.exe install即可完成服务安装,后续可直接通过Windows服务管理器启停 - 如需制作可视化安装程序,可将WinSW程序、配置模板、JAR包一起打包进Inno Setup等安装包制作工具,在安装界面新增两个输入框收集用户自定义参数,安装时自动替换XML中的参数占位符即可。
- 下载对应系统架构的
2. NSSM(Non-Sucking Service Manager)
- 无额外依赖、体积极小,支持可视化配置,无需手动编写配置文件
- 操作步骤:
- 下载
nssm.exe存放到任意目录,执行nssm install 自定义服务名会自动弹出配置界面 - 应用路径选择本地
java.exe的路径,参数栏填写-jar "JAR包绝对路径" 参数1 参数2 - 按需配置启动类型、日志存储路径后点击确认即可完成服务注册
- 打包为安装程序时可通过
nssm install 服务名 静默参数的方式实现无交互安装,安装流程中收集到的用户自定义参数可直接拼接进注册命令中。
- 下载
3. Apache Procrun(Commons Daemon)
- Apache官方推出的Java程序专用服务封装工具,兼容32/64位系统,支持自定义JVM参数、启停逻辑
- 操作步骤:
- 下载对应架构的
prunsrv.exe(服务运行程序)和prunmgr.exe(图形化管理工具) - 执行命令完成服务注册,示例命令可直接传入自定义参数:
prunsrv.exe install MyJavaService --DisplayName="自定义服务显示名" --Install=prunsrv.exe --Jvm=auto --Classpath="C:\部署路径\你的应用.jar" --StartMode=jvm --StartClass=你的主类全限定名 --StartParams="参数1;参数2" - 注册完成后即可在Windows服务列表中管理,也可通过
prunmgr.exe图形化修改参数配置。
- 下载对应架构的
安装程序打包补充
- 以上三种服务封装工具都可搭配免费安装包制作工具(Inno Setup、NSIS)使用,你只需在安装向导中新增两个输入项收集用户需要传入JAR的命令行参数,安装脚本在执行服务注册前把用户输入的参数替换到对应配置项或命令中即可。
内容的提问来源于stack exchange,提问作者Károly Neue
相关产品推荐
相关产品推荐

