Languages
[Edit]
EN

Java 8 - get current process ID (PID)

5 points
Created by:
Tomeriko
233

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 getCurrrentProcessId() 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("Current PID: " + getCurrrentProcessId());
	}
}

Example output:

PID: 7788
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join