2

我正在使用以下代码来终止所有 java 进程。

taskkill /F /IM javaw.exe
taskkill /F /IM java.exe
exit

当我需要杀死我所有的 java 进程时,这很好用。问题是当我运行它时,它也会杀死我的 eclipse 进程。如何跳过 eclipse 进程并杀死所有其他 java 进程。

4

1 回答 1

0

一种方法是保存 Eclipse 进程的 PID,然后当您对所有 Java 进程执行 taskkill 时,排除该 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

我发现的另一种方法是使用jps与 JDK 捆绑在一起的程序,按名称查找 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 )

对您来说最好的方法将取决于您的特定用例。

于 2014-01-03T07:11:42.493 回答