关于springboot部署在windows系统

问题:

若springboot通过在cmd窗口运行java -jar的方式部署在windows系统,在cmd窗口关闭后,服务会同时关闭。

以下方式可以把服务注册到系统并长期运行:

  1. 首先下载WinSW。这是一个把服务在系统上注册、卸载的工具,github上开源。可以在这里下载WinSW的github地址。主要下载winsw.exe和winsw.xml两个文件,下载后放入一个目录例如winsw。

  2. 下载后把这两个文件修改为服务的名字。并打开xml文件编写配置,示例如下:

    1
    2
    3
    4
    5
    6
    7
    8
    <service>
    <id>xxx-service</id> <!--服务ID-->
    <name>xxx后端服务</name> <!--服务名-->
    <description>xxx后端服务</description> <!--服务描述-->
    <executable>F:\Java\xxx部署测试\jre1.8.0_231\bin\java</executable> <!--运行方式-->
    <arguments>-jar "F:\Java\xxx部署测试\xxx-0.0.1-SNAPSHOT.jar"</arguments> <!--执行参数-->
    <logmode>rotate</logmode> <!--循环日志-->
    </service>

    更多具体参数可参考官网。

  3. 在winsw同目录下放入springboot打包后的xxx-0.0.1-SNAPSHOT.jar。

  4. 关于注册与开启服务。进入winsw目录,打开cmd窗口。

    运行以下命令以注册服务:

    1
    xxx-service install

    运行以下命令以启动服务:

    1
    xxx-service start

    此时,可在任务管理器——服务选项看到此服务并已开启。(测试时重启系统后服务会自动开启,需加以验证)。

  5. 关于停止与卸载服务。进入winsw目录,打开cmd窗口。

    运行以下命令以停止服务:

    1
    xxx-service stop

    运行以下命令以卸载服务:

    1
    xxx-service uninstall
  6. *可以编写对应bat脚本,方便操作。示例如下:

    1
    2
    3
    4
    @echo off

    ::打开cmd注册xxx服务,然后启动
    start cmd /k "cd/d winsw&&xxx-service install&&xxx-service start&&exit"
    1
    2
    3
    4
    @echo off

    ::打开cmd停止xxx服务,然后卸载
    start cmd /k "cd/d winsw&&xxx-service stop&&xxx-service uninstall&&exit"

    此两bat文件放于winsw同目录下,双击运行即可。