■ はじめに
* Javaでの PID(プロセスID)などのプロセス情報に関する処理をまとめる。
■ 自分のPIDを取得するには
サンプル
import java.lang.management.ManagementFactory; import java.lang.management.RuntimeMXBean; public class Main { public static void main(String[] args) { RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean(); String vmName = mxBean.getName(); String[] values = vmName.split("@"); long pid = Long.valueOf(values[0]); System.out.println("VM Name : " + vmName); System.out.println("PID : " + pid); } }
参考文献
http://etc9.hatenablog.com/entry/20120601/1338574435http://voidy21.hatenablog.jp/entry/20110520/1305903613
http://qiita.com/LightSpeedC/items/a818a11a20d11f457549
おまけ
https://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-process-id
In Java 9 ~~~~ long pid = ProcessHandle.current().getPid(); ~~~~
■ プロセス情報一覧を表示するには
サンプル
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; public class Main { public static void main(String[] args) throws IOException { Runtime runtime = Runtime.getRuntime(); String cmds[] = { "cmd", "/c", "tasklist" }; //String cmds[] = { "cmd", "/c", "jps" }; Process proc = runtime.exec(cmds); InputStream inputstream = proc.getInputStream(); InputStreamReader inputstreamreader = new InputStreamReader(inputstream); BufferedReader bufferedreader = new BufferedReader(inputstreamreader); String line; while ((line = bufferedreader.readLine()) != null) { System.out.println(line); } } }