跳至主要內容

win部署

chanchaw大约 1 分钟安装与部署

WinSW制作后台服务

下面是案例项目

  • application.yml - 批处理 start.bat 启动项目时指定使用外置配置文件
  • showa.jar - 项目 jar 包
  • shutdown.bat - 关闭项目脚本
  • start.bat - 启动项目脚本
  • 所有 WinSW 开头的是用于制作 windows 服务的工具,其中 WinSW.NET4.xml 是生成服务时的配置文件
WinSW制作后台服务01
WinSW制作后台服务01

该配置文件如下:

<service>
    <id>showa</id>
    <name>showa</name>
    <description>showa backend service</description>
    <executable>java</executable>
    <arguments>-jar -Xms2048m -Xmx2048m -Dfile.encoding=UTF-8 D:\projs\showa\backend\showa.jar --spring.config.location=D:\projs\showa\backend\application.yml</arguments>
    <startmode>Automatic</startmode>
    <logmode>reset</logmode>
</service>

cmd 中切换路径到上图(项目 jar 所在路径)执行命令 WinSW.NET4 install 创建为 windows 后台服务,执行 WinSW.NET4 uninstall 是卸载服务

启动脚本

将下面代码保存为 start.bat,运行后启动当前目录下的文件 xzy.jar

@echo off
start javaw -jar -Dfile.encoding=UTF-8 xzy.jar --spring.config.location=D:\xzy\application-pro.yml -Xms1024m -Xmx1024m
exit

通过端口关闭

@echo off
set port=8081
for /f "tokens=1-9" %%i in ('netstat -ano ^| findstr "%port%"') do (
taskkill -f -pid %%m
)
echo 已经关闭端口8081的程序
exit

文件关闭

@echo off
set char=xzy.jar
echo char : %char%
set pid=
for /f "usebackq tokens=1-2" %%a in (`jps -l ^| findstr %char%`) do (
 echo find process %%a %%b
 set pid=%%a
)
if defined pid taskkill /f /pid %pid%
echo 延迟2秒后将重新启动%char%进程
sleep 2
java -jar %char%