美文网首页javaalreadywindows
将jar注册为windows系统服务

将jar注册为windows系统服务

作者: 随风遣入夜 | 来源:发表于2022-09-16 11:23 被阅读0次

    需求

    将spring boot项目编译成jar,注册为windows系统服务

    实现方式

    在网上了解到,winsw这个开源项目,去github看了下,作者常年维护更新,文档齐全,拥趸不少,自己写了个小demo体验了下还不错,然后又运行了一个晚上,没啥问题,遂决定采用它

    开源地址

    需要准备什么?

    • 在releases下载这个软件的本体,一个exe,一个配置的xml
    • 一个可以正常运行的jar(我是写了个自用的项目,每五秒输出一次日志)
    • 一个win7或者win10的操作系统
      注:下载示意,我使用的版本是2.11.0


      只下载这两个文件

    怎么制作服务?

    1. 准备好写好的jar,我这个是个刚初始化的spring boo项目,就额外加了个log日志的配置文件,代码仓库如下,exe和xml也在里面
    2. 配置xml文件,文件名改成和jar同名文件,例testexe.xml
    <?xml version="1.0" encoding="UTF-8" ?>
    <service>
      <!-- 该服务的唯一标识 -->
      <id>test-data</id>
      <!-- 注册为系统服务的名称 -->
      <name>SW test Data</name>
      <!-- 对服务的描述 -->
      <description>测试数据生成服务</description>
      <!-- 将java程序添加到系统服务 -->
      <executable>java</executable>
      <!-- 执行的参数 -->
      <arguments>-jar "testexe.jar"</arguments>
      <!-- 日志模式 这种是exe帮忙收集产生的日志配置,如果jar自带了log的话,也会输出 -->
       <!--<logpath>\logs</logpath>
       <log mode="roll-by-size">
            <!-- 归档文件大小,单位是KB -->
           <sizeThreshold>3</sizeThreshold>
           <keepFiles>8</keepFiles>
       </log>-->
    <!-- 日志模式 这种是exe不用帮忙收集产生的日志配置 因为jar自带了log输出那一套 -->
       <log mode="none"></log>
    </service>
    
    1. 将exe文件改名为跟jar同名的文件


      部署示意图
    2. 将服务注册为系统服务
    # cmd 管理员模式进入该文件夹内
    # 输入命令注册为系统服务
    testexe.exe install testexe.xml
    # 看的success字样说明已经注册成功了
    # 打开windows 服务管理界面,右键启动这个服务,查看日志
    
    1. 卸载该服务
    # cmd 管理员模式进入该文件夹内
    # 停止该服务
    testexe.exe stop
    # 输入命令卸载该服务
    testexe.exe uninstall 
    

    扩展

    服务命令

    Your renamed WinSW.exe binary also accepts the following commands:

    命令 描述
    [install] Installs the service 安装服务.
    [uninstall] Uninstalls the service. 卸载服务
    [start] Starts the service. 启动服务
    [stop] Stops the service. 停止服务
    [restart] Stops and then starts the service.重启服务
    [status] Checks the status of the service. 查看服务状态
    [refresh] Refreshes the service properties without reinstallation.无需重新安装即可刷新服务属性
    [customize] Customizes the wrapper executable.自定义包装器可执行文件

    以下是官方写的 文档地址
    [https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md]

    相关文章

      网友评论

        本文标题:将jar注册为windows系统服务

        本文链接:https://www.haomeiwen.com/subject/pikjortx.html