package com.dy.common.util; 
 | 
  
 | 
import lombok.Data; 
 | 
  
 | 
import java.net.UnknownHostException; 
 | 
import java.text.DecimalFormat; 
 | 
import java.util.Properties; 
 | 
  
 | 
/** 
 | 
 * @Author: liurunyu 
 | 
 * @Date: 2024/8/2 13:52 
 | 
 * @Description 
 | 
 */ 
 | 
public class SysJvmUtil { 
 | 
  
 | 
    /** 
 | 
Java虚拟机信息 
 | 
     */ 
 | 
    public static JvmInfoVo info() throws UnknownHostException { 
 | 
        JvmInfoVo vo = new JvmInfoVo() ; 
 | 
        Properties props = System.getProperties(); 
 | 
        vo.setTotal(toMbytes(Runtime.getRuntime().totalMemory())); 
 | 
        vo.setMax(toMbytes(Runtime.getRuntime().maxMemory())); 
 | 
        vo.setFree(toMbytes(Runtime.getRuntime().freeMemory())); 
 | 
        vo.setVersion(props.getProperty("java.version")); 
 | 
        vo.setHome(props.getProperty("java.home")); 
 | 
        return vo ; 
 | 
    } 
 | 
  
 | 
    private static double toMbytes(double value){ 
 | 
        return value/1000000.0 ; 
 | 
    } 
 | 
  
 | 
    @Data 
 | 
    public static class JvmInfoVo { 
 | 
        /** 
 | 
    当前JVM占用的内存总数(M) 
 | 
         */ 
 | 
        public double total; 
 | 
  
 | 
        /** 
 | 
    JVM最大可用内存总数(M) 
 | 
         */ 
 | 
        public double max; 
 | 
  
 | 
        /** 
 | 
    JVM空闲内存(M) 
 | 
         */ 
 | 
        public double free; 
 | 
  
 | 
        /** 
 | 
    JDK版本 
 | 
         */ 
 | 
        public String version; 
 | 
  
 | 
        /** 
 | 
    JDK路径 
 | 
         */ 
 | 
        public String home; 
 | 
  
 | 
  
 | 
        public String toString(){ 
 | 
            DecimalFormat df = new DecimalFormat("#.####"); // 设定格式 
 | 
            StringBuilder sb = new StringBuilder() ; 
 | 
            sb.append("   JVM信息:\n"); 
 | 
            sb.append("      JVM最大可用内存总数(M):" + df.format(max) + "\n"); 
 | 
            sb.append("      JVM占用的内存数(M):" + df.format(total) + "\n"); 
 | 
            sb.append("      JVM空闲内存数(M):" + df.format(free) + "\n"); 
 | 
            sb.append("      JDK版本:" + version + "\n"); 
 | 
            sb.append("      JDK路径:" + home + "\n"); 
 | 
  
 | 
            return sb.toString() ; 
 | 
        } 
 | 
    } 
 | 
  
 | 
  
 | 
  
 | 
} 
 |