如何在Windows'cmd.exe中杀死java进程(按名称)?

当我运行jps -lv ,我得到了

4748 org.apache.abc.runtime.common.abc -XX:PermSize = 128m -XX:MaxPermSize = 128m -Xmx512m -ea -Dproc_abc 11140 sun.tools.jps.Jps -Dapplication.home = C:\ Program Files \ Java \ jdk1.7.0_79 -Xms8m

我需要Windows批处理命令来死abc。

在linux中,

 taskkill /f /pid $(jps -lv | grep abc | awk '{print $1}') 

这将是工作,但在Windows中,我不能find如何做到这一点。

请帮帮我。

你可以像这样批量尝试:

 @echo off for /f "delims= " %%a in ('jps -lv ^| find /i "common"') do set PID=%%a taskkill /f /PID %PID% pause 

或者像这样:

 @echo off for /f "tokens=1" %%A in ('jps -lv ^| find "common"') do (taskkill /F /PID %%A) pause 

pskill看看pskill

用法:pskill [-t] [\\ computer [-u username [-p password]]] 
     杀死进程及其后代。
      -u指定用于登录的可选用户名
           远程计算机。
      -p指定用户名的可选密码。 如果你省略这个
           您将被提示输入一个隐藏的密码。

但是对于Windows中更现代的方法,使用PowerShell和WMI会更好。

例如。 要杀死一个FireFox进程与“默认”的命令行我可以使用:

 (gwmi win32_process -filter 'name = "firefox.exe" and commandline like "%default%"').Handle | % { stop-process $_ } 

gwmiGet-WmiObject简称, Win32_Process对象使用其Handle属性来保存进程ID。 %ForEach-Object的别名,并执行传递的脚本块。 $_是当前传递给管道的对象,