需求缘起

       有网易云课堂的小伙伴提问:“我想要在Windows  服务器上   当做服务来运行的”。在windows系统上如果使用jar运行的话,想必这个大家都会,但是如果要以服务的形式的话,那么应该有些小伙伴还不清楚吧,本篇文章为你解惑。

说明

在linux下部署Spring Boot项目是一件很简单的事,直接后台运行就行了,最多写个shell脚本开机自启就行了。在windows上运行jar有一个问题,运行的时候会弹出一个cmd窗口,并且不能关闭,关闭的话程序就停止了。那么在windows下以服务的方式进行运行呢,Spring官方网站推荐使用winsw来将Spring Boot项目做为务运行,参考地址:

安装使用

(1)下载winswexe文件

 

我这里下载的是最新版本winsw-v2.2.0,这里有两个要下载的文件:其一winsw.exe文件; 其二是xml配置文件。我下载的是最新版本的WinSW.NET4.exe和sample-minimal.xml。

(1)sample-minimal.xml:配置window服务信息、可执行程序、参数。

(2)WinSW.NET4.exe:是安装/卸载windows服务的exe文件。

题外话:下载地址的WinSW.NET4和WinSW.NET2是什么鬼?

(1)NET是window下的netframework的简称。

(2).netframework2.0选择 WinSW.NET2.exe;.netframework4.0  选择WinSW.NET4.exe。

(3)怎么查看自己系统上的netframework的最高版本号呐?特别简单,直接打开【我的电脑】- 在地址栏输入【%systemroot%\Microsoft.Net\Framework】就可以看到多个版本,当中的最高版本就是我们目前正在使用的.net Framework的版本号。

springboot卡在Parsing java spring boot一直运行_springboot项目后台运行关闭

(2)修改配置

将winsw执行程序跟xml改成同样的名字,推荐使用项目名-service的命名方式,比如:WinSW.NET4.exe改成springboot-service.exe,sample-minmal.xml改成springboot-service.xml:

springboot卡在Parsing java spring boot一直运行_jar_02

改名完成后,编辑spring-bootService.xml文件,配置如下图:

  spring-boot-hello

  spring-boot-hello

  spring boot hello 例子

  java

  -jarspring-boot-hello.jar

(3)安装服务

配置完成后,命令行进入winsw所在的文件夹,执行“spring-boot-hello-service.exeinstall”,其中spring-boot-hello-service是你修改后的名称。注意:命令提示符界面要用管理员权限进入,否则安装服务会失败,提示“WMI Operation failure: AccessDenied”

springboot卡在Parsing java spring boot一直运行_xml_03

安装成功如下:

springboot卡在Parsing java spring boot一直运行_spring_04

(4)服务启动和关闭

服务的启动:net startspring-boot-service

服务的关闭:net stopspring-boot-service

springboot卡在Parsing java spring boot一直运行_jar_05

(5)服务删除

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

输入“net stop spring-boot-hello”停止运行服务。

输入“spring-boot-hello-service.exeuninstall”删除服务。

springboot卡在Parsing java spring boot一直运行_springboot项目后台运行关闭_06