2011年4月19日火曜日

java で pid (2)

ManagementFactory.getRuntimeMXBean().getName() とやると PID@HOST 形式の文字列が取れるらしい。こっちのほうがポータブル。

Java でgetpid

ポータブルかどうかはしらない。まあ、JNIを使うよりはましってことで。Windowsは無理ってことで。
 
 static private int getPid() throws IOException, InterruptedException {
  ProcessBuilder pb = new ProcessBuilder();
  pb.command("/bin/sh", "-c", "echo $PPID");
  Process p = pb.start();
  p.waitFor();
  String str = (new LineNumberReader(new InputStreamReader(p.getInputStream()))).readLine();
  return Integer.parseInt(str);
 }