我正在使用以下代码来杀死所有java进程。
taskkill /F /IM javaw.exe
taskkill /F /IM java.exe
exit
当我需要杀死所有java进程时,这很好用。问题是当我运行它时它也会杀死我的日食过程。如何跳过eclipse进程并终止所有其他java进程。
答案 0 :(得分:0)
一种方法是保存eclipse进程的PID,然后在对所有java进程进行任务处理时,排除该PID
改编自Kill only one process with 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 )
最好的方法取决于您的具体用例。