jar、bat、exe制作Windows系统服务
在工作中,有很多中间件启动后是一个窗口,这样很不方便,比如nacos、Seata这些服务,如果可以做成Windows系统服务,开机即启动岂不是美哉?
须知:.jar、.exe、.bat都可以制作成系统服务,且方式不止一种
所需要工具:Windows小工具(主要依靠这个)、xml文件、需要制作的执行程序(小工具和xml文件名称保持一致)
链接:小工具
提取码:fq6h
一、bat制作:
以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文件
<service>
<!-- 唯一服务ID-->
<id>seata</id>
<!-- 显示服务的名称 -->
<name>gksc-seata</name>
<!-- 服务描述 -->
<description>seata服务</description>
<!-- 日志路径 -->
<logpath>F:\install-nacos-server\seata-server-1.2.0\bin\logs\</logpath>
<!-- 日志模式 -->
<logmode>roll</logmode>
<!-- 可执行文件的命令 -->
<executable>F:\install-nacos-server\seata-server-1.2.0\bin\seata-server.bat</executable>
<!-- 停止可执行文件的命令 -->
<stopexecutable>F:\install-nacos-server\seata-server-1.2.0\bin\stop-seata.bat</stopexecutable>
</service>
目录结构如下:
3.电脑需管理员身份进入程序目录执行命令 gksc-seata-server.exe install
二、.jar制作
1、新建一个文件夹,放入以下文件,exe小工具、jar包、xml名称保持一致
2、在新建的xml文件中加入以下内容
<service>
<id>gksc-terminal</id>
<!—服务名称 -->
<name>gksc-terminal</name>
<!—服务描述 可中文 -->
<description>This is gksc-terminal service.</description>
<!-- java环境变量 -->
<env name="JAVA_HOME" value="%JAVA_HOME%"/>
<executable>java</executable>
<arguments>-jar "D:\BaiduNetdiskDownload\test\gksc-terminal.jar"</arguments>
<!-- 开机启动 -->
<startmode>Automatic</startmode>
<!-- 日志配置 -->
<logpath>D:\BaiduNetdiskDownload\test\server log</logpath>
<logmode>rotate</logmode>
</service>
3、用管理员身份进入该目录命令:gksc-terminal.exe install
4、在系统服务中找到该服务启动该服务即可。