====== 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}}