使用名称而不是 PID 杀死 java 进程

zer*_*d0l 4 java windows kill-process

在我的java程序中,我想终止一个名为“DummyBroker”的进程(这是另一个java程序)。我可以使用 TaskKill 杀死它,但它需要进程的 PID。那么我怎样才能获取特定java进程的pid然后杀死它呢?

Cla*_*lad 7

你应该看看这个链接: Killing a process using Java

并使用类似的东西:

Runtime.getRuntime().exec("taskkill /F /IM <processname>.<extension>")

tasklist否则,您可以使用和的组合split来查找包含行,然后找到PID.

  • 这只能通过任务名来杀死。所有 java 程序都以 java.exe 作为任务名 (2认同)

zer*_*d0l 5

终于在这里找到了一个简单的解决方案

jps - Java 虚拟机进程状态工具,可用于通过其名称杀死 java 进程。

for /f "tokens=1" %i in ('C:\java\jdk-7u45-windows-x64\bin\jps -m ^| find "DummyBroker"') do ( taskkill /F /PID %i )
Run Code Online (Sandbox Code Playgroud)

我们可以将上面的内容添加到批处理文件中,然后简单地从java程序中调用批处理文件。