Languages
[Edit]
EN

Java 8 - get current process ID (PID)

5 points
Created by:
Tomeriko
413

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

 

See also

  1. Java 9+ - get current process ID (PID) 

Alternative titles

  1. Java 8 - get program own process ID
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
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