EN
Java 8 - get current process ID (PID)
5
points
In this short article, we would like to show how to get the current process ID (PID) in Java 8.
There is not a direct method to do it in Java 8, but there is some trick.
Tested on: JRockit, Hotspot JVMs, Corretto.
Practical example:
import sun.management.VMManagement;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
public class Program {
private static int getCurrentProcessId() throws Exception {
RuntimeMXBean runtime = ManagementFactory.getRuntimeMXBean();
Field jvm = runtime.getClass().getDeclaredField("jvm");
jvm.setAccessible(true);
VMManagement management = (VMManagement) jvm.get(runtime);
Method method = management.getClass().getDeclaredMethod("getProcessId");
method.setAccessible(true);
return (Integer) method.invoke(management);
}
public static void main(String[] args) throws Exception {
System.out.println("PID: " + getCurrentProcessId());
}
}
Example output:
PID: 7788