我正在使用下面的代码来杀死所有的java进程。
taskkill /F /IM javaw.exe taskkill /F /IM java.exe exit
这个工作正常,当我需要杀死所有的我的Java进程。 问题是当我运行它也杀死我的eclipse过程。 我怎样才能跳过eclipse进程,并杀死所有其他的java进程。
一种方法是保存eclipse进程的PID,然后在任务完成所有java进程时,排除该PID
改编自杀死只有一个进程taskkill :
在一个cmd
窗口中:
使用批处理文件启动eclipse:
start eclipse.exe for /f "tokens=2" %%x in ('tasklist ^| findstr java.exe') do set PIDTOSAVE=%%x
并终止你会使用
for /f "tokens=2" %%x in ('tasklist ^| findstr java.exe ^| findstr /v %PIDTOSAVE%') do taskkill /F /PID %%x
我发现的另一种方法是使用与JDK捆绑在一起的jps
程序,按名称查找java进程。 请参阅http://yannickloriot.com/2012/08/kill-a-java-process-from-the-command-line-or-a-bat-file/#sthash.bFaaPUxi.dpbs 。 示例用法是:
for /f "tokens=1" %i in ('jps -m ^| find "YOUR_JAVA_PROCESS_NAME"') do ( taskkill /F /PID %i )
对你来说最好的方法将取决于你的具体用例。