The code below show you how to get the process id of a Java application. We can use the ManagementFactory.getRuntimeMXBean().getName()
to get the process id. In Windows the method return a string in the form of [PID]@[MACHINE_NAME]
.
package org.kodejava.example.management;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
public class GetProcessID {
public static void main(String[] args) {
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
// Get name representing the running Java virtual machine.
// It returns something like 6460@AURORA. Where the value
// before the @ symbol is the PID.
String jvmName = bean.getName();
System.out.println("Name = " + jvmName);
// Extract the PID by splitting the string returned by the
// bean.getName() method.
long pid = Long.valueOf(jvmName.split("@")[0]);
System.out.println("PID = " + pid);
}
}
Here is the result of the code above:
Name = 8564@AURORA
PID = 8564
Latest posts by Wayan (see all)
- How do I install Calibri font in Ubuntu? - January 24, 2021
- How do I create a generic class in Java? - January 1, 2021
- How do I convert java.util.TimeZone to java.time.ZoneId? - April 25, 2020
I just found that the process with PID=8564 uses 25% of CPU while there was a blank screen saver on the desktop PC (win7, i5-3570K) while idle. Is the process PID generally unique, and what does that process 8564 (svchost.exe) do while PC is idle and blank screen saver is on?