Java:如何找到另一个程序的进程ID?

Java:如何找到另一个程序的进程ID?,java,eclipse,process,pid,Java,Eclipse,Process,Pid,我想知道如何找到另一个程序的进程ID。(非爪哇语) 当我开始编写程序时,我认为.exe的进程保持不变,但当我的程序失败时,我重新检查并意识到它改变了 我在互联网上尝试了许多不同的方法,但没有一个是以非java程序为目标的 这是我目前的代码: try { System.out.println("DefaultButton Pressed"); Runtime.getRuntime().exec("tas

我想知道如何找到另一个程序的进程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(duh)。我一直试图将代码更改为不同的非java程序,但代码仍然不起作用

String processID= ManagementFactory.getRuntimeMXBean().getName();
System.out.println("Process ID for this app = " + processID);
同样,这是获取自己代码的代码

我不能使它适应工作

我甚至可以得到另一个非java进程的PID吗

编辑1 这是我的新代码

Process processIdRaw;
            try{
                processIdRaw = Runtime.getRuntime().exec("tasklist /m | find \"<processname>" ");
                System.out.println("Aquired PID");

            }
            catch(IOException e){
                e.printStackTrace();
            }
            int processID = Integer.parseInt(processIdRaw);
            System.out.println("PID:"+processID);
processprocessidraw;
试一试{
processIdRaw=Runtime.getRuntime().exec(“任务列表/m|find\”);
System.out.println(“获取的PID”);
}
捕获(IOE异常){
e、 printStackTrace();
}
int processID=Integer.parseInt(processIdRaw);
System.out.println(“PID:+processID”);
这个代码在我的其他代码之前。另一个代码位于上述代码之后

我认为类型
Process
不适用于
intprocessid=Integer.parseInt(processIdRaw)

我添加了
.parseInt
,因为我认为它可以从输出中找到数字


由于类型
进程

之前出现的错误,我无法找到使PID工作的方法,但是

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")
Runtime.getRuntime().exec(“taskkill/F/IM.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();
                    }
试试看{
System.out.println(“按下默认按钮”);
Runtime.getRuntime().exec(“taskkill/F/IM”);
}捕获(IOE异常){
//TODO自动生成的捕捉块
System.out.println(“未能终止进程”);
e、 printStackTrace();
}
查找进程名称的步骤

1:运行你想杀死的程序

2:运行CMD

3:运行命令tasklist


4:获取进程名称

我找不到使PID工作的方法,但是

Runtime.getRuntime().exec("taskkill /F /IM <processname>.exe")
Runtime.getRuntime().exec(“taskkill/F/IM.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();
                    }
试试看{
System.out.println(“按下默认按钮”);
Runtime.getRuntime().exec(“taskkill/F/IM”);
}捕获(IOE异常){
//TODO自动生成的捕捉块
System.out.println(“未能终止进程”);
e、 printStackTrace();
}
查找进程名称的步骤

1:运行你想杀死的程序

2:运行CMD

3:运行命令tasklist

4:获取进程名称