要将 Java 的 Jar 文件注册为 Windows 服务,可以使用一个称为 WinSW 的开源项目。 WinSW 是一个用 Java 编写的 Windows 服务包装器,它将可执行的 Jar 文件注册为 Windows 服务。

# 下载

访问 WinSW 的 GitHub 页面。
地址:https://github.com/winsw/winsw/releases
一般下载最新稳定版本,放入 Jar 文件所在目录。

# 配置

将 WinSW-x64.exe 改为有意义的名称,例如 myapp.exe ,便于管理识别。
在 Jar 文件所在目录中创建一个 xml 配置文件,名称要和上述 exe 同名,例如 myapp.xml ,输入以下内容,WinSW 会去读取相同名称 xml 文件中的配置进行相关设置。

<service>
  <id>myapp</id>
  <name>myapp</name>
  <description>My App Service</description>
  <executable>java</executable>
  <arguments>-jar path/to/your/app.jar</arguments>
  <logmode>rotate</logmode>
</service>

确保将 path/to/your/app.jar 替换为 Jar 文件实际路径,exe 与 xml 同名。

参数描述:

参数描述
id服务 ID 名称,必须唯一
name服务显示名称,必须唯一,一般和 id 一致
description服务描述
executable执行命令
arguments命令参数
autoRefresh自动刷新服务属性
refresh刷新服务属性而不是重新安装

官方文档:https://github.com/winsw/winsw/blob/v3/docs/xml-config-file.md

# 注册

# 安装服务

打开终端(以管理员身份运行)并导航到 WinSW.exe 所在目录。运行以下命令安装服务:

myapp.exe install

# 启动服务

运行以下命令启动服务:

myapp.exe start

确保终端以管理员身份运行。

现在,Jar 文件已注册为 Windows 服务,并且可以在 Windows 服务管理器中找到。可以使用服务管理器启动、停止和管理该服务。

# 命令

常用命令:

命令描述
install安装服务
uninstall卸载服务
start启动服务
stop停止服务
restart重启服务
status检查服务状态
refresh刷新服务属性而不是重新安装
更新于