在java代码中获取JVM参数的方法

所属分类: 软件编程 / java 阅读数: 30
收藏 0 赞 0 分享

实例如下:

MemoryMXBean memorymbean = ManagementFactory.getMemoryMXBean();  
  MemoryUsage usage = memorymbean.getHeapMemoryUsage();  
  System.out.println("INIT HEAP: " + usage.getInit());  
  System.out.println("MAX HEAP: " + usage.getMax());  
  System.out.println("USE HEAP: " + usage.getUsed());  
  System.out.println("\nFull Information:");  
  System.out.println("Heap Memory Usage: "  
  + memorymbean.getHeapMemoryUsage());  
  System.out.println("Non-Heap Memory Usage: "  
  + memorymbean.getNonHeapMemoryUsage());  
   
  List<String> inputArguments = ManagementFactory.getRuntimeMXBean().getInputArguments();  
  System.out.println("===================java options=============== "); 
  System.out.println(inputArguments); 
 
   
   
  System.out.println("=======================通过java来获取相关系统状态============================ "); 
  int i = (int)Runtime.getRuntime().totalMemory()/1024;//Java 虚拟机中的内存总量,以字节为单位 
  System.out.println("总的内存量 i is "+i); 
  int j = (int)Runtime.getRuntime().freeMemory()/1024;//Java 虚拟机中的空闲内存量 
  System.out.println("空闲内存量 j is "+j); 
  System.out.println("最大内存量 is "+Runtime.getRuntime().maxMemory()/1024); 
 
  System.out.println("=======================OperatingSystemMXBean============================ "); 
  OperatingSystemMXBean osm = (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============================ "); 
  MemoryMXBean mm=(MemoryMXBean)ManagementFactory.getMemoryMXBean(); 
  System.out.println("getHeapMemoryUsage "+mm.getHeapMemoryUsage()); 
  System.out.println("getNonHeapMemoryUsage "+mm.getNonHeapMemoryUsage()); 
  //获取各个线程的各种状态,CPU 占用情况,以及整个系统中的线程状况 
  System.out.println("=======================ThreadMXBean============================ "); 
  ThreadMXBean tm=(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============================ "); 
  CompilationMXBean gm=(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(MemoryPoolMXBean mpm: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(GarbageCollectorMXBean gcm:gcmList){ 
    System.out.println("getName "+gcm.getName()); 
    System.out.println("getMemoryPoolNames "+gcm.getMemoryPoolNames()); 
  } 
  //获取运行时信息 
  System.out.println("=======================RuntimeMXBean============================ "); 
  RuntimeMXBean rmb=(RuntimeMXBean)ManagementFactory.getRuntimeMXBean(); 
  System.out.println("getClassPath "+rmb.getClassPath()); 
  System.out.println("getLibraryPath "+rmb.getLibraryPath()); 
  System.out.println("getVmVersion "+rmb.getVmVersion()); 

以上这篇在java代码中获取JVM参数的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

更多精彩内容其他人还在看

SpringBoot环境搭建及第一个程序运行(小白教程)

这篇文章主要介绍了SpringBoot环境搭建及第一个程序运行,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

过滤器 和 拦截器的 6个区别(别再傻傻分不清了)

这篇文章主要介绍了过滤器 和 拦截器的 6个区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

SpringBoot整合SpringTask实现定时任务的流程

这篇文章主要介绍了SpringBoot整合SpringTask实现定时任务的流程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享

vscode快速引入第三方jar包发QQ邮件

这篇文章主要介绍了vscode快速引入第三方jar包发QQ邮件,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Java Enum和String及int的相互转化示例

这篇文章主要介绍了Java Enum和String及int的相互转化示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

Spring boot如何快速的配置多个Redis数据源

这篇文章主要介绍了Spring boot如何快速的配置多个Redis数据源,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JAVA 对接腾讯云直播的实现

这篇文章主要介绍了JAVA 对接腾讯云直播的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
收藏 0 赞 0 分享

JavaSE static final及abstract修饰符实例解析

这篇文章主要介绍了JavaSE static final及abstract修饰符实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

SpringBoot定时任务参数运行代码实例解析

这篇文章主要介绍了SpringBoot定时任务运行代码实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
收藏 0 赞 0 分享

Spring Boot调用 Shell 脚本实现看门狗功能

这篇文章主要介绍了Spring Boot调用 Shell 脚本实现看门狗功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
收藏 0 赞 0 分享
查看更多