Winsw部署Java服务
WinSW可以将应用打包成Windows服务的方式运行。WinSW可以运行在已经安装了.NET Framework 4.6.1或更新版本的windows平台上。如果系统并没有安装.NET Framework,可以基于 .NET 7以项目提供的64-bit和32-bit执行文件进行执行。
简单来说,如果你想把你的服务部署在windows上,不受cmd命令行的局限,可以采用此方法部署,本文档针对java(spring boot)服务进行说明,完成部署。
一、安装步骤
1、Winsw Gitlab下载地址
https://github.com/winsw/winsw/releases
2、进入上面下载地址以后,显示如下页面
3、本次部署选择的Winsw版本为v2.12.0(可根据个人情况选择对应的版本),下载红圈内的两个文件【电脑是32位windows下载WinSW-64.exe,电脑是64位windows下载WinSW-86.exe】
4、上述文件下载完成后,还需准备Java服务打包后的文件–jar包,若需要自定义配置文件,可以在准备一份application.yml or application.properties文件【本篇文章准备的是yml文件,可根据个人情况选择】
5、将上面四个文件都统一放到同一个目录下,目录可自定义,但是四个文件必须放在同级目录。【注意:exe文件和xml文件都必须要改成相同的名字,名字可自定义,但是名字最好是服务名,以便于区分】
6、配置xml文件,本篇文章只用到了下列几个参数,若还需要别的参数,可以参考别的文档
<service>
<!--安装windows服务后的服务ID,必须是唯一的-->
<id>eurekaService</id>
<!--服务名称,也必须是唯一的。一般和id一致即可-->
<name>eurekaService</name>
<!--服务说明,可以使用中文,可做备注使用-->
<description>注册中心服务</description>
<!--java 或 jdk路径 -->
<executable>java</executable>
<!--命令执行参数 -->
<arguments>-jar EurekaService.jar -Dspring.config.additional==application-pro.yml</arguments>
<!--启动模式 自动启动-->
<startmode>Automatic</startmode>
<!--日志设置-->
<log mode="none"></log>
</service>
(1)若使用java
不能启动服务,可改成jdk的路径D:\Soft\JDK17\bin\java.exe
,路径可根据自己装的jdk自行修改。
(2)若有配置文件,可使用下列参数挂载,实现动态修改配置文件,不用重新打包;若不需要,可删除下列配置 -Dspring.config.additional==application-pro.yml
(3)application.yml
文件连接redis或者mysql都需要改成本机ip或者localhost。
(4)startmode
模式设置成Automatic
以后,当你电脑关机或者重启的时候,服务会自动启动,不用在通过cmd重新启动服务,
7、上述工作都准备好后,可以在当前路径下打开windows cmd命令行,执行EurekaService.exe install
,可将jar包以服务的形式注册到任务管理器中
Microsoft Windows [版本 10.0.19045.3570]
(c) Microsoft Corporation。保留所有权利。
D:\windows deploy\gw-eureka-service>EurekaService.exe install
2023-11-14 14:25:16,416 INFO - Installing service 'eurekaService (eurekaService)'...
2023-11-14 14:25:16,475 INFO - Service 'eurekaService (eurekaService)' was installed successfully.
8、执行EurekaService.exe start
,可将服务启动
D:\windows deploy\gw-eureka-service>EurekaService.exe start
2023-11-14 14:27:21,261 INFO - Starting service 'eurekaService (eurekaService)'...
2023-11-14 14:27:21,887 INFO - Service 'eurekaService (eurekaService)' started successfully.
9、查看任务管理器,检查服务是否正常启动【出现下列图形状态,说明服务成功安装并且启动】
10、访问localhost:8002,查看界面是否访问正常【访问正常,说明已成功将eureka注册到注册管理器中,并且成功启动】
二、参考命令
安装服务
xxx.exe install
重启服务
xxx.exe restart
停止服务
xxx.exe stop
卸载服务
xxx.exe uninstall