====== JavaでプロセスのPIDを取得する ======
JavaでカレントプロセスのPIDを取得する方法。
getpid()システムコール相当。
参考: [[https://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-process-id]]
===== Java 9 =====
Java 9は''java.lang.ProcessHandle::pid()''でPIDを取得する正式な方法を提供している。
long pid = ProcessHandle.current().pid();
===== Java 8以前 =====
PIDを取得する正式な方法はない。
''java.lang.management.RuntimeMXBean::getName()''が返す「Java仮想マシンを表す名前」が''"PID@hostname"''であることを利用する。
JVMの実装依存になるため動作保証はない。
String pid_and_hostname = java.lang.management.ManagementFactory.getRuntimeMXBean().getName();
int pid = Integer.parseInt(pid_and_hostname.split("@")[0]);
{{tag>java}}