gpt4 book ai didi

java - 如何找到在 java 中启动的进程的进程 ID (pid)?

转载 作者:IT老高 更新时间:2023-10-28 20:47:41 27 4
gpt4 key购买 nike

如果我通过 Runtime.getRuntime().exec(...)ProcessBuilder.start() 在 Java 中得到一个进程对象,我可以等待它通过Process.waitFor(),类似于Thread.join(),或者我可以用Process.destroy()杀死它,这就像已弃用的 Thread.stop().

但是:如何找到进程对象的 pid?我在 The Official Documentation 中没有看到这样做的方法.我可以在 Java 中做到这一点吗?如果有,怎么做?

最佳答案

这家伙调用 bash 来获取 PID。我不确定这个问题是否有 java 解决方案。

/**
* Gets a string representing the pid of this program - Java VM
*/
public static String getPid() throws IOException,InterruptedException {

Vector<String> commands=new Vector<String>();
commands.add("/bin/bash");
commands.add("-c");
commands.add("echo $PPID");
ProcessBuilder pb=new ProcessBuilder(commands);

Process pr=pb.start();
pr.waitFor();
if (pr.exitValue()==0) {
BufferedReader outReader=new BufferedReader(new InputStreamReader(pr.getInputStream()));
return outReader.readLine().trim();
} else {
System.out.println("Error while getting PID");
return "";
}
}

来源: http://www.coderanch.com/t/109334/Linux-UNIX/UNIX-process-ID-java-program

关于java - 如何找到在 java 中启动的进程的进程 ID (pid)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284139/

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