package org.kodejava.lang.management;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
public class PeakThreadCount {
public static void main(String[] args) {
// Get the managed bean for the thread system of the Java
// virtual machine.
ThreadMXBean bean = ManagementFactory.getThreadMXBean();
// Get the peak live thread count since the Java virtual
// machine started or peak was reset.
int peakThreadCount = bean.getPeakThreadCount();
System.out.println("Peak Thread Count = " + peakThreadCount);
}
}
Tag Archives: ManagementFactory
How do I get current number of live threads?
package org.kodejava.lang.management;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadMXBean;
public class ThreadCount {
public static void main(String[] args) {
// Get the managed bean for the thread system of the Java
// virtual machine.
ThreadMXBean bean = ManagementFactory.getThreadMXBean();
// Get the current number of live threads including both
// daemon and non-daemon threads.
int threadCount = bean.getThreadCount();
System.out.println("Thread Count = " + threadCount);
}
}
How do I get the Java classpath?
The RuntimeMXBean.getClassPath()
returns the Java class path that is used by the system class loader to search for class files. This method is equivalent to System.getProperty("java.class.path")
.
Multiple paths in the Java class path are separated by the path separator character of the platform of the Java virtual machine being monitored.
package org.kodejava.lang.management;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
public class GetClassPath {
public static void main(String[] args) {
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
String classPath = bean.getClassPath();
System.out.println("ClassPath = " + classPath);
}
}
How do I get system properties information?
package org.kodejava.lang.management;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.Map;
import java.util.Set;
public class GetSystemProperties {
public static void main(String[] args) {
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
// Returns a map of names and values of all system
// properties. This method calls System.getProperties()
// to get all system properties. Properties whose
// name or value is not a String are omitted.
Map<String, String> systemProperties = bean.getSystemProperties();
Set<String> keys = systemProperties.keySet();
for (String key : keys) {
String value = systemProperties.get(key);
System.out.printf("Property[%s] = %s%n", key, value);
}
}
}
Some properties produced by the code snippet above are:
Property[java.specification.version] = 17
Property[sun.cpu.isalist] = amd64
Property[sun.jnu.encoding] = Cp1252
Property[java.vm.vendor] = Oracle Corporation
Property[sun.arch.data.model] = 64
Property[user.variant] =
Property[java.vendor.url] = https://java.oracle.com/
...
...
Property[java.vm.info] = mixed mode, sharing.
Property[java.vendor] = Oracle Corporation.
Property[java.vm.version] = 17+35-LTS-2724.
Property[sun.io.unicode.encoding] = UnicodeLittle.
Property[java.class.version] = 61.0.
How do I get the start time of a JVM?
package org.kodejava.lang.management;
import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean;
import java.util.Date;
public class GetStartTime {
public static void main(String[] args) {
RuntimeMXBean bean = ManagementFactory.getRuntimeMXBean();
// Returns the start time of the Java virtual machine in
// milliseconds. This method returns the approximate time
// when the Java virtual machine started.
long startTime = bean.getStartTime();
Date startDate = new Date(startTime);
System.out.println("Start Time = " + startTime);
System.out.println("Start Date = " + startDate);
}
}
The result of the code snippet above:
Start Time = 1634391703196
Start Date = Sat Oct 16 21:41:43 CST 2021