将Java程序注册为Windows系统服务
现实环境是有些甲方的物理服务器是Widnwos系统,还不能切换Linux,就必须在 Windows 运行 Java 程序,cmd 的控制台窗口很容易被误关闭,需要把 Java 程序注册为 Windows 随机启动。
WinSW 介绍
WinSW 将任何应用程序作为 Windows 服务进行包装和管理。当前最新版本是 WinSW v3.0.0-alpha.10。
WinSW 3 可以在已安装 NET Framework 4.6.1 或更高版本的 Windows 平台上运行。
对于缺少 .NET Framework 的系统,该项目提供了基于 .NET Core的原生64位和32位可执行文件。
WinSW 配置
到 Github 下载 WinSW > winsw/winsw。
将 WinSW.exe 文件复制到 Java 程序所在目录。
将 Java 程序文件名中间的
.
去掉。例如 myapp-1.0.jar 改为 myapp.jar净 WinSW.exe 重命名为与Java 程序相同的文件名,仍是
.exe
后缀。例如,Java 程序是 myapp.jar,将 WinSW.exe 改为 myapp.exe。
创建 myapp.xml 文件,并与 myapp.exe 放在一起,便 于WinSW 发现配置
执行
myapp.exe insta [options]
安装服务。执行
myapp.exe start
起动服务。XML 配置文件示例
下面的示例是 Jenkins 项目中使用的原始示例:
1
2
3
4
5
6
7
8
9<service>
<id>jenkins</id>
<name>Jenkins</name>
<description>This service runs Jenkins continuous integration system.</description>
<env name="JENKINS_HOME" value="%BASE%"/>
<executable>java</executable>
<arguments>-Xrs -Xmx256m -jar "%BASE%\jenkins.war" --httpPort=8080</arguments>
<log mode="roll"></log>
</service>安装服务:CMD控制台执行: myapp.exe install
可以在 Windows 服务列表看到启动的服务。如果要更新服务,需要先停止服务。
卸载服务:CMD控制台执行: myapp.exe uninstall
WinSW 命令
ommand | Description |
---|---|
install | 安装服务 |
uninstall | 卸载服务 |
start | 启动服务 |
stop | 停止服务 |
restart | 重启服务 |
status | 检查服务状态 |
refresh | Refreshes the service properties without reinstallation. |
customize | Customizes the wrapper executable. |
dev | Experimental commands. |
将Java程序注册为Windows系统服务
http://blog.gxitsky.com/2022/07/15/Java-register-into-windows-service/