如何将Spring Boot项目部署为Windows服务,并设置开机启动

用途:使用Spring Boot开发的Web项目,打包生成了一个jar包,部署在Windows服务器中,设置为开机启动

其它失败方案:

1、Spring Boot生成的jar包,可以直接用java -jar运行,但是前提是需要登录用户,而且注销用户后会退出程序,所以不可用。

2、使用计划任务,写一个bat处理文件,里面写java -jar运行程序,然后把bat文件作为一个计划任务运行;结果可能是因为任务启动时,系统资源未准备好,所以没有成功。

最佳方案:使用winsw,winsw是一个开源项目,程序以及源码可以在Git Hub下载:

https://github.com/kohsuke/winsw/releases

winsw是一个可以将任何应用程序注册成服务的软件,使用方法如下:

1、将Git Hub中下载的WinSW.NET4.exe和sample-minimal.xml文件及springboot项目的jar包放在同一个文件夹中。


1535104193(1).png

2、需要将winsw执行程序跟xml改成同样的名字,推荐使用项目名+Service的命名方式,比如:WinSW.NET4.exe改成myProjectService.exe,sample-minmal.xml改成myProjectService.xml。


1535104250(1).png

3、编辑myProjectService.xml文件,内容如下

<configuration>
  
    <!--安装成Windows服务后的服务名-->
    <id>myProjectServiceID</id>
    <!--显示的服务名称-->
    <name>myProjectServiceName</name>
    <!--对服务的描述-->
    <description>此处可填写该服务的描述</description>
    <!--这里写java的路径,如何配置了环境变量直接写"java"就行-->
    <executable>java</executable>
    <!--Xmx256m 代表堆内存最大值为256MB -jar后面的是项目名-->
    <arguments>-Xmx256m -jar myProject.jar</arguments>
    <!--日志模式-->
    <logmode>rotate</logmode>

</configuration>

4、打开系统服务功能:运行——输入cmd,然后进入到myProjectService.exe所在文件夹,然后执行命令安装服务命令:myProjectService.exe install。


1535105633(1).png

5、命令提示符界面输入命令“net start myProjectServiceName”启动服务。


1535184837(1).png

6、打开系统服务功能:运行——输入services.msc,即可看见自己命名的服务myProjectServiceName。


1535185077(1).png

7、测试 :重启电脑后该服务会自动启动,执行第6步可检查是否成功。

8、删除服务分为两步:1停止服务;2删除服务,都是在命令行界面实现。

      命令提示符界面输入命令"net stop myProjectServiceName"停止运行服务。
1535184265(1).png
      命令提示符界面输入命令"myProjectService.exe uninstall"可删除服务
1535184342(1).png

9.上面所有的命令都可以写在批处理文件中,部署的时候就可以实现一键部署了。

    例如myProjectStart.bat内容如下:
    myProjectService.exe install
    net start myProjectServiceName

    例如myProjectStop.bat内容如下:
    net stop myProjectServiceName
    myProjectService.exe uninstall

10.如果没有成功可以查看日志找原因,日志文件在同级目录:


1535185961(1).png

最后,本文如有疏忽错误,请指教

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,925评论 6 342
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,837评论 18 139
  • 入门 介绍 Spring Boot Spring Boot 使您可以轻松地创建独立的、生产级的基于 Spring ...
    Hsinwong阅读 16,941评论 2 89
  • 一、基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文...
    蒋_Sir阅读 9,176评论 1 4
  • .bat脚本基本命令语法 目录 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和 :: 2...
    庆庆庆庆庆阅读 8,179评论 1 19