在 Windows 系统中,有时我们需要将 jar、exe 等文件作为 Windows 服务运行。本文将介绍如何使用 WinSW 工具来实现这一目的。
一、工具介绍
WinSW 是一个强大的工具,可以将各种程序文件设置为 Windows 服务。如果使用 sc.exe、nssm 等工具时,程序文件不符合 Windows 服务要求导致服务无法启动,那么 WinSW 可能是你的最佳选择。
二、工具获取
WinSW 可从 https://github.com/winsw/winsw/releases 下载。下载后可以根据需要将其命名为“WinSW.exe”(不改名也可,但前后配置需保持一致)。
三、相关文件说明
1. install.bat 文件
此文件用于安装后台服务。运行时会显示提示信息“请按任意键开始安装后台服务...”,按下任意键后,程序会切换到当前目录,执行WinSW.exe install
命令进行服务安装,然后启动指定的服务,最后提示“请按任意键退出...”。需要注意的是,此文件需以管理员身份运行。
@echo on
:color 2f
chcp 65001
mode con: cols=80 lines=25
@echo 请按任意键开始安装后台服务...&pause>nul
cd /d %~dp0
WinSW.exe install
net start helloword
@echo 请按任意键退出...&pause>nul
2. uninstall.bat 文件
用于卸载后台服务。运行时会提示“请按任意键开始卸载后台服务...”,按下任意键后,先停止指定的服务,再执行WinSW.exe uninstall
命令进行服务卸载,最后提示“请按任意键退出...”。
@echo on
:color 2f
chcp 65001
mode con: cols=80 lines=25
@echo 请按任意键开始卸载后台服务...&pause>nul
cd /d %~dp0
net stop helloword
WinSW.exe uninstall
@echo 请按任意键退出...&pause>nul
3. WinSW.xml 文件
这是 WinSW 的配置文件,采用 XML 格式,遵循 MIT 许可证。配置文件中包含了服务的各种配置信息,如服务 ID、显示名称、描述、可执行文件路径及参数、启动模式和日志路径等。
例如:
<service>
<id>helloword</id>
<name>helloword</name>
<description>helloword</description>
<executable>%BASE%\helloword.exe</executable>
<arguments>server "%BASE%\data"</arguments>
<startmode>Automatic</startmode>
<logpath>%BASE%\logs</logpath>
<log mode="append">rotate</log>
</service>
其中,<id>
定义服务唯一 ID;<name>
和<description>
分别设置服务显示名称和描述;<executable>
指定要执行的可执行文件路径;<arguments>
为可执行文件传递参数;<startmode>
设置服务启动模式为自动;<logpath>
定义日志存储路径;<log mode="append">rotate</log>
设置日志记录模式为rotate(基于大小)。
四、部署步骤
- 将需要设置为服务的 jar 或 exe 文件放到当前目录,并根据实际情况改名为“xxx.jar”或“xxx.exe”。在实际项目配置中,注意替换相关内容中的“helloword”。
- 双击
install.bat
文件进行服务安装。在执行过程中,会出现提示“按任意键继续...”,按下任意键继续操作,最终会提示安装成功。 - 若服务已安装且需要更新 jar 或 exe 文件,可先双击
uninstall.bat
进行服务卸载,然后重复步骤 1 和 2。
通过以上步骤,你就可以使用 WinSW 工具将你的程序文件轻松设置为 Windows 服务,方便快捷地进行管理和运行。
标签:helloword,教程,exe,服务,Windows,WinSW,任意键 From: https://www.cnblogs.com/Jimc/p/18393885