articles:getpid_in_java

JavaでプロセスのPIDを取得する

JavaでカレントプロセスのPIDを取得する方法。 getpid()システムコール相当。

参考: https://stackoverflow.com/questions/35842/how-can-a-java-program-get-its-own-process-id

Java 9はjava.lang.ProcessHandle::pid()でPIDを取得する正式な方法を提供している。

long pid = ProcessHandle.current().pid();

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]);
  • 最終更新: 2020-03-07 14:30
  • by nabium