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

If I get a process object in Java through Runtime.getRuntime().exec(...), or ProcessBuilder.start(), I can wait for it through Process.waitFor(), which is like Thread.join(), or I could kill it with Process.destroy(), which is like the deprecated Thread.stop().

BUT: How do I find the pid of the Process Object? I don't see a method for doing that in The Official Documentation. Can I do this in Java? If so, how?

解决方案

This guy calls out to bash to get the PID. I'm not sure if there is an java solution to the problem.

/**

* Gets a string representing the pid of this program - Java VM

*/

public static String getPid() throws IOException,InterruptedException {

Vector commands=new Vector();

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

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值