将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位可执行文件。

详细可参考:XML 配置规范配置示例

WinSW 配置

  1. 到 Github 下载 WinSW > winsw/winsw

  2. 将 WinSW.exe 文件复制到 Java 程序所在目录。

  3. 将 Java 程序文件名中间的 .去掉。例如 myapp-1.0.jar 改为 myapp.jar

  4. 净 WinSW.exe 重命名为与Java 程序相同的文件名,仍是.exe后缀。

    例如,Java 程序是 myapp.jar,将 WinSW.exe 改为 myapp.exe。

  5. 创建 myapp.xml 文件,并与 myapp.exe 放在一起,便 于WinSW 发现配置

  6. 执行 myapp.exe insta [options]安装服务。

  7. 执行 myapp.exe start 起动服务。

  8. 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>
  9. 安装服务:CMD控制台执行: myapp.exe install

  10. 可以在 Windows 服务列表看到启动的服务。如果要更新服务,需要先停止服务。

  11. 卸载服务: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.
作者

光星

发布于

2022-07-15

更新于

2023-03-06

许可协议

评论