在工作中,有很多中间件启动后是一个窗口,这样很不方便,比如nacos、Seata这些服务,如果可以做成Windows系统服务,开机即启动岂不是美哉?
须知:.jar、.exe、.bat都可以制作成系统服务,且方式不止一种
所需要工具:Windows小工具(主要依靠这个)、xml文件、需要制作的执行程序(小工具和xml文件名称保持一致)
链接:小工具
提取码:fq6h
以Seata服务为例,只有启动bat脚本,并没有停止bat脚本.
1.那就创建一个stop-seata.bat,可随意写,达到停止Seata服务目的即可
@echo off & setlocal EnableDelayedExpansion
choice /t 1 /d y /n >nul
set obj[0]=8091
set port=0
set pid=0
for /f "usebackq delims== tokens=1-2" %%a in (`set obj`) do (
set port=%%b
for /f "tokens=5" %%m in ('netstat -aon ^| findstr ":%%b"') do (
set pid=%%m
)
if "!pid!"=="0" (
echo 端口号【!port!】没有占用
) else (
echo 端口号【!port!】相关进程以杀死
taskkill /f /pid !pid!
)
set pid=0
)
pause
2.编写seata-server.xml文件
seata gksc-seata seata服务 F:install-nacos-serverseata-server-1.2.0binlogs roll F:install-nacos-serverseata-server-1.2.0binseata-server.bat F:install-nacos-serverseata-server-1.2.0binstop-seata.bat
目录结构如下:
3.电脑需管理员身份进入程序目录执行命令 gksc-seata-server.exe install
二、.jar制作1、新建一个文件夹,放入以下文件,exe小工具、jar包、xml名称保持一致
2、在新建的xml文件中加入以下内容
gksc-terminal gksc-terminal This is gksc-terminal service. java -jar "D:BaiduNetdiskDownloadtestgksc-terminal.jar" Automatic D:BaiduNetdiskDownloadtestserver log rotate
3、用管理员身份进入该目录命令:gksc-terminal.exe install
4、在系统服务中找到该服务启动该服务即可。
PS:以上方式不能确保每位大佬都能成功,勿喷


