2017-04-09 88 views
1

我想知道如何找到另一个程序的进程ID。 (非java)Java:我如何找到另一个程序的进程ID?

当我开始编程我的程序时,我以为一个.exe的进程保持不变,但是当我的程序失败时,我重新检查并意识到它发生了改变!

我已经尝试了很多不同的方式从互联网上,但他们都没有一个非java程序作为目标。

这里是我当前的代码:

try { 
         System.out.println("DefaultButton Pressed"); 
         Runtime.getRuntime().exec("taskkill /F /PID "+processID); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         System.out.println("Failed to kill the process"); 
         e.printStackTrace(); 
        } 

此代码改掉当我按下一个按钮

我有想抓PID码杀过程,但它也失败了

我已经试过这个来获取PID,但它抓住了我的进程的ID(杜)。我一直在试图将代码更改为不同的非Java程序,但代码仍然无法正常工作。

String processID= ManagementFactory.getRuntimeMXBean().getName(); 
System.out.println("Process ID for this app = " + processID); 

再次这是代码来抓自己的代码。

我无法调整它的工作。

我能否获得另一个非java进程的PID?

编辑1 这是我的新代码

​​

此代码是在我的其他代码。其他代码来自上面的代码。

我觉得类型Processint processID = Integer.parseInt(processIdRaw);

工作,我已经添加了.parseInt,因为我虽然它会发现从输出的数量。

错误之前因为类型的Process

回答

0

我无法找到一个方法,使PID的工作,但!

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

作品!

try { 
         System.out.println("DefaultButton Pressed"); 
         Runtime.getRuntime().exec("taskkill /F /IM <processname>"); 
        } catch (IOException e) { 
         // TODO Auto-generated catch block 
         System.out.println("Failed to kill the process"); 
         e.printStackTrace(); 
        } 

要查找的进程名

1:运行要杀死

2方案:运行CMD

3:执行tasklist

4:抓斗进程名称

相关问题