bat关闭java_通过bat脚本停止java进程的三个方法

通过bat脚本停止java进程的三个方法

1.拷贝java.exe

启动时复制java.exe程序修改进程映像名,然后通过映像名杀进程。

栗子

过程

操作

拷贝程序

拷贝一份java.exe程序,重名为tstop.exe,放在PATH下。

修改启动脚本

@echo off

title tstop

tstop -jar …/lib/laucher.jar … …/lib/*.jar,…/conf,

执行停止命令

C:\Users\alvin>tasklist | findstr tstop

tstop.exe 8520 Console 1 42,436 K

C:\Users\alvin>taskkill /f /im tstop.exe

成功: 已终止进程 “tstop.exe”,其 PID 为 8520。

优点: 操作简单可靠

缺点: 需要给每个java程序拷贝一份java.exe,映像名不能重复。

2.通过端口杀进程

通过端口找到PID,然后杀掉进程。

栗子

一个完整的脚本:

@echo off

rem 设置监听的端口号

set port=6200

echo port : %port%

for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^| findstr %port%`) do (

if [%%d] EQU [LISTENING] (

set pid=%%e

)

)

for /f "usebackq tokens=1-5" %%a in (`tasklist ^| findstr %pid%`) do (

set image_name=%%a

)

echo now will kill process : pid %pid%, image_name %image_name%

pause

rem 根据进程ID,kill进程

taskkill /f /pid %pid%

pause

优点: 相对于第一种方案,不用有额外的操作拷贝java.exe

缺点: 脚本相对复杂(主要是不熟悉batch脚本语法)

问题分析:

启动java程序后,执行命令netstat -ano | findstr port

C:\Users\alvin>netstat -ano | findstr 6200

TCP 0.0.0.0:6200 0.0.0.0:0 LISTENING 10332

TCP [::]:6200 [::]:0 LISTENING 10332

当执行telnet localhost port后,再执行命令netstat -ano | findstr port

C:\Users\alvin>netstat -ano | findstr 6200

TCP 0.0.0.0:6200 0.0.0.0:0 LISTENING 10332

TCP [::]:6200 [::]:0 LISTENING 10332

TCP [::1]:62644 [::1]:6200 TIME_WAIT 0

所以脚本里面需要判断

[%%d] EQU [LISTENING]

这句

3.通过jps命令

jps命令简介

jps的英文名称是JVM Process Status Tool,功能和ps命令类似。可以列出正在运行的虚拟机进程、显示虚拟机执行主类(main()函数所在的类)的名称、这些进程的本地虚拟机的唯一ID(LVMID, Local Virtual Machine Identifier,LVMID和PID是一致的)。

选项

作用

-q

只输出LVMID(PID)

-m

输出虚拟机进程启动时传递给主类main()函数的参数

-l

输出主类的全名,如果进程执行时是Jar包,输出Jar路径

-v

输出虚拟机进程启动时JVM参数

栗子

过程

操作

启动程序

通过启动脚本启动程序

@echo off

title tstop

tstop -jar …/lib/laucher.jar … …/lib/*.jar,…/conf,

找到PID

C:\Users\alvin>jps -l

5084 …/lib/ocean-laucher-1.0.5.6.jar

4696

9864 sun.tools.jps.Jps

参照栗子2遍历jps -l输出,找到PID 5084

通过PID杀掉进程 taskkill /f /pid 5084

优点: jps命令相对比netstat -ano语法清晰

缺点: java程序需要保证Jar包名(…/lib/laucher-1.0.5.6.jar)不同,相对拷贝java.exe要好一些

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值