使用Name而不是PID终止java进程

时间:2014-03-24 13:53:28

标签: java windows kill-process

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

4 个答案:

答案 0 :(得分:4)

您应该看一下这个链接:Killing a process using Java

使用类似的东西:

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

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

答案 1 :(得分:3)

最后找到了一个简单的解决方案here

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 )

我们可以在批处理文件中添加以上内容,只需从java程序中调用批处理文件。

答案 2 :(得分:1)

Runtime.getRuntime()。exec(&#34; taskkill / F / IM&#34; + TASKNAME); 虽然这只会被任务名称

杀死

答案 3 :(得分:0)

浏览此链接... http://www.golesny.de/p/code/javagetpid

像这样使用java.lang.management.ManagementFactory

RuntimeMXBean rtb = ManagementFactory.getRuntimeMXBean();
String processName = rtb.getName();
int result = 0;

Pattern pattern = Pattern.compile("^([0-9]+)@.+$", Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(processName);
if (matcher.matches()) {
result = new Integer(Integer.parseInt(matcher.group(1)));
}