gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 11:35:44 27 4
gpt4 key购买 nike

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

当我开始编写程序时,我认为 .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这是我的新代码

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);

此代码位于我的其他代码之前。其他代码位于上述代码之后。

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

我添加了 .parseInt 因为我认为它会从输出中找到数字。

之前由于类型Process而出错

最佳答案

我找不到让 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:运行命令任务列表

4:获取进程名称

关于Java:如何找到另一个程序的进程ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43312436/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com