在java代码中获取JVM参数的方法
实例如下:
MemoryMXBeanmemorymbean=ManagementFactory.getMemoryMXBean();
MemoryUsageusage=memorymbean.getHeapMemoryUsage();
System.out.println("INITHEAP:"+usage.getInit());
System.out.println("MAXHEAP:"+usage.getMax());
System.out.println("USEHEAP:"+usage.getUsed());
System.out.println("\nFullInformation:");
System.out.println("HeapMemoryUsage:"
+memorymbean.getHeapMemoryUsage());
System.out.println("Non-HeapMemoryUsage:"
+memorymbean.getNonHeapMemoryUsage());
List<String>inputArguments=ManagementFactory.getRuntimeMXBean().getInputArguments();
System.out.println("===================javaoptions===============");
System.out.println(inputArguments);
System.out.println("=======================通过java来获取相关系统状态============================");
inti=(int)Runtime.getRuntime().totalMemory()/1024;//Java虚拟机中的内存总量,以字节为单位
System.out.println("总的内存量iis"+i);
intj=(int)Runtime.getRuntime().freeMemory()/1024;//Java虚拟机中的空闲内存量
System.out.println("空闲内存量jis"+j);
System.out.println("最大内存量is"+Runtime.getRuntime().maxMemory()/1024);
System.out.println("=======================OperatingSystemMXBean============================");
OperatingSystemMXBeanosm=(OperatingSystemMXBean)ManagementFactory.getOperatingSystemMXBean();
//System.out.println(osm.getFreeSwapSpaceSize()/1024);
//System.out.println(osm.getFreePhysicalMemorySize()/1024);
//System.out.println(osm.getTotalPhysicalMemorySize()/1024);
//获取操作系统相关信息
System.out.println("osm.getArch()"+osm.getArch());
System.out.println("osm.getAvailableProcessors()"+osm.getAvailableProcessors());
//System.out.println("osm.getCommittedVirtualMemorySize()"+osm.getCommittedVirtualMemorySize());
System.out.println("osm.getName()"+osm.getName());
//System.out.println("osm.getProcessCpuTime()"+osm.getProcessCpuTime());
System.out.println("osm.getVersion()"+osm.getVersion());
//获取整个虚拟机内存使用情况
System.out.println("=======================MemoryMXBean============================");
MemoryMXBeanmm=(MemoryMXBean)ManagementFactory.getMemoryMXBean();
System.out.println("getHeapMemoryUsage"+mm.getHeapMemoryUsage());
System.out.println("getNonHeapMemoryUsage"+mm.getNonHeapMemoryUsage());
//获取各个线程的各种状态,CPU占用情况,以及整个系统中的线程状况
System.out.println("=======================ThreadMXBean============================");
ThreadMXBeantm=(ThreadMXBean)ManagementFactory.getThreadMXBean();
System.out.println("getThreadCount"+tm.getThreadCount());
System.out.println("getPeakThreadCount"+tm.getPeakThreadCount());
System.out.println("getCurrentThreadCpuTime"+tm.getCurrentThreadCpuTime());
System.out.println("getDaemonThreadCount"+tm.getDaemonThreadCount());
System.out.println("getCurrentThreadUserTime"+tm.getCurrentThreadUserTime());
//当前编译器情况
System.out.println("=======================CompilationMXBean============================");
CompilationMXBeangm=(CompilationMXBean)ManagementFactory.getCompilationMXBean();
System.out.println("getName"+gm.getName());
System.out.println("getTotalCompilationTime"+gm.getTotalCompilationTime());
//获取多个内存池的使用情况
System.out.println("=======================MemoryPoolMXBean============================");
List<MemoryPoolMXBean>mpmList=ManagementFactory.getMemoryPoolMXBeans();
for(MemoryPoolMXBeanmpm:mpmList){
System.out.println("getUsage"+mpm.getUsage());
System.out.println("getMemoryManagerNames"+mpm.getMemoryManagerNames().toString());
}
//获取GC的次数以及花费时间之类的信息
System.out.println("=======================MemoryPoolMXBean============================");
List<GarbageCollectorMXBean>gcmList=ManagementFactory.getGarbageCollectorMXBeans();
for(GarbageCollectorMXBeangcm:gcmList){
System.out.println("getName"+gcm.getName());
System.out.println("getMemoryPoolNames"+gcm.getMemoryPoolNames());
}
//获取运行时信息
System.out.println("=======================RuntimeMXBean============================");
RuntimeMXBeanrmb=(RuntimeMXBean)ManagementFactory.getRuntimeMXBean();
System.out.println("getClassPath"+rmb.getClassPath());
System.out.println("getLibraryPath"+rmb.getLibraryPath());
System.out.println("getVmVersion"+rmb.getVmVersion());
以上这篇在java代码中获取JVM参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。