使用java进程的名称而不是PID来杀死它。

问题描述 投票:3回答:4

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

java windows kill-process
4个回答
4
投票

你应该看看这个链接。 使用Java杀死一个进程

并使用类似于.的东西。

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

否则,你也许可以使用一个组合的 tasklistsplit 找到包含的行,然后找到 PID.


4
投票

终于找到了一个简单的解决方案 此处

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程序中调用批处理文件。


1
投票
Runtime.getRuntime().exec("taskkill /F /IM " + TASKNAME);

虽然这只是通过任务名来杀死


0
投票

通过这个链接...http:/www.golesny.depcodejavagetpid

使用 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)));
}
© www.soinside.com 2019 - 2024. All rights reserved.