0x00 批脚本(有窗口)

使用文本文档输入如下内容:

1
2
3
@echo off
java -jar xxx.jar
exit

保存为 deploy.bat文件,双击生成的bat脚本,服务启动成功。

注意: 该脚本会执行项目,但是不会关闭窗口,一旦关闭窗口,项目会关闭。

0x01 bat批处理脚本(后台运行,没有命令弹窗)

要想在后台执行该jar,需要以下脚本:

1
2
3
4
@echo off
set JAR_HOME=%~dp0
start javaw -jar %JAVA_HOME%\xxx.jar
exit

注意:该脚本适用于启动脚本和jar包在同一目录的时候。

其中,jar包位置需要绝对路径,不然有可能会报错:“Unable to access jarfile”

将脚本更名为 deploy.bat,执行即可后台启动该项目。

0x02 关闭项目

根据启动项目的端口号,查看端口进程,杀死进程

  • cmd窗口查看被占用的端口号:
1
netstat -ano | findstr 8888
  • 查看PID对应的进程
1
tasklist | findstr “pid”
  • 杀死占用的端口号:
1
taskkill /pid 27008 /f

0x03 bat批处理文件的多样化

单次启动

  • 编写脚本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@echo off
set port=8888
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
if [%%d] EQU [LISTENING] (
set pid=%%e
)
)
if "%pid%" == "" goto start
if not "%pid%" == "" goto run

:run
echo %port% (采集程序运行中)port is opening...
pause
exit

:start
echo (开始启动采集程序)starting collect program...
java -jar D:\program\xxx-0.0.1-SNAPSHOT.jar
echo Starting Success!
exit
  • 编写vbs文件,启动(没有命令弹窗,后台运行)
1
2
set ws=WScript.CreateObject("WScript.Shell") 
ws.Run "F:\tianjin\tianjin\tj_collect_data.bat /start",0

关闭项目

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
@echo off
SET port=8888
for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (
if [%%d] EQU [LISTENING] (
set pid=%%e
)
)
echo close : %port% %pid%
if not "%pid%" == "" taskkill /f /pid %pid%

echo start
PING 127.1 -n 5 >nul
java -jar D:\work-zakj\hwariot-mix-service\build\libs\hwariot-mix-service-0.0.1-SNAPSHOT.jar

exit