你如何在java中获得进程ID?

时间:2011-01-05 06:02:33

标签: java process terminal

我正在尝试找到一种编程方式来打开和关闭应用程序的方法。我可以使用

轻松启动应用程序
 Runtime.getRuntime().exec(new String[] {"open", "<path to application>"});

然而,我能找到关闭它的唯一方法是使用

 Runtime.getRuntime().exec(new String[] {"kill", "<process id#>"});

除了手动打开终端并使用top找到#之外,我无法找到id#。如果有一种程序化的方式来获取此ID,或者只是更好的方式来打开和关闭应用程序,我很乐意听到它。

由于

2 个答案:

答案 0 :(得分:3)

使用java.lang.ProcessBuilder启动子流程。返回的Process对象有一个destroy()方法可以让你杀死它。

答案 1 :(得分:0)

这可能与原始海报不相关(由于已用时间),但仅仅是为了完整...

由于exec(...)命令,您获得了进程对象的句柄:

Process myProcess = Runtime.getRuntime().exec("mybin");

然后您可以使用destroy()

随时杀死
myProcess.destroy();

注意:这可能类似于Jim所描述但不使用ProcessBuilder