java jvm 信息_Java获取 JVM 运行信息

import java.lang.management.ClassLoadingMXBean;

import java.lang.management.ManagementFactory;

import java.lang.management.MemoryMXBean;

import java.lang.management.OperatingSystemMXBean;

import java.lang.management.RuntimeMXBean;

import java.lang.management.ThreadMXBean;

import java.text.DecimalFormat;

import java.text.DecimalFormatSymbols;

import java.text.NumberFormat;

import java.util.Locale;public classJVMResource{public static voidmain(String[] args) {newJVMResource().printSummary();

}private NumberFormat fmtI = new DecimalFormat("###,###", newDecimalFormatSymbols(Locale.ENGLISH));private NumberFormat fmtD = new DecimalFormat("###,##0.000", newDecimalFormatSymbols(Locale.ENGLISH));private final int Kb = 1024;public voidprintSummary() {

RuntimeMXBean runtime=ManagementFactory.getRuntimeMXBean();

OperatingSystemMXBean os=ManagementFactory.getOperatingSystemMXBean();

ThreadMXBean threads=ManagementFactory.getThreadMXBean();

MemoryMXBean mem=ManagementFactory.getMemoryMXBean();

ClassLoadingMXBean cl=ManagementFactory.getClassLoadingMXBean();

System.out.printf("jvmName:%s %s %s%n", runtime.getVmName(), "version", runtime.getVmVersion());

System.out.printf("jvmJavaVer:%s%n", System.getProperty("java.version"));

System.out.printf("jvmVendor:%s%n", runtime.getVmVendor());

System.out.printf("jvmUptime:%s%n", toDuration(runtime.getUptime()));

System.out.printf("threadsLive:%d%n", threads.getThreadCount());

System.out.printf("threadsDaemon:%d%n", threads.getDaemonThreadCount());

System.out.printf("threadsPeak:%d%n", threads.getPeakThreadCount());

System.out.printf("threadsTotal:%d%n", threads.getTotalStartedThreadCount());

System.out.printf("heapCurr:%d%n", mem.getHeapMemoryUsage().getUsed() /Kb);

System.out.printf("heapMax:%d%n", mem.getHeapMemoryUsage().getMax() /Kb);

System.out.printf("heapCommitted:%d%n", mem.getHeapMemoryUsage().getCommitted() /Kb);

System.out.printf("osName:%s %s %s%n", os.getName(), "version", os.getVersion());

System.out.printf("osArch:%s%n", os.getArch());

System.out.printf("osCores:%s%n", os.getAvailableProcessors());

System.out.printf("clsCurrLoaded:%s%n", cl.getLoadedClassCount());

System.out.printf("clsLoaded:%s%n", cl.getTotalLoadedClassCount());

System.out.printf("clsUnloaded:%s%n", cl.getUnloadedClassCount());

}protected String printSizeInKb(doublesize) {return fmtI.format((long) (size / 1024)) + "kbytes";

}protected String toDuration(doubleuptime) {

uptime/= 1000;if (uptime < 60) {return fmtD.format(uptime) + "seconds";

}

uptime/= 60;if (uptime < 60) {long minutes = (long) uptime;

String s= fmtI.format(minutes) + (minutes > 1 ? "minutes" : "minute");returns;

}

uptime/= 60;if (uptime < 24) {long hours = (long) uptime;long minutes = (long) ((uptime - hours) * 60);

String s= fmtI.format(hours) + (hours > 1 ? "hours" : "hour");if (minutes != 0) {

s+= " " + fmtI.format(minutes) + (minutes > 1 ? "minutes" : "minute");

}returns;

}

uptime/= 24;long days = (long) uptime;long hours = (long) ((uptime - days) * 24);

String s= fmtI.format(days) + (days > 1 ? "days" : "day");if (hours != 0) {

s+= " " + fmtI.format(hours) + (hours > 1 ? "hours" : "hour");

}returns;

}

}

你可能感兴趣的:(java,jvm,信息)