zhubaomin
2025-04-17 d711c899e42e8cacee3ed6408f4c57e91c962dc8
pipIrr-platform/pipIrr-common/src/main/java/com/dy/common/util/SysUtil.java
New file
@@ -0,0 +1,64 @@
package com.dy.common.util;
import lombok.Data;
import oshi.SystemInfo;
import oshi.hardware.HardwareAbstractionLayer;
import java.util.LinkedList;
/**
 * @Author: liurunyu
 * @Date: 2024/8/2 15:37
 * @Description
 */
public class SysUtil {
    public static InfoVo info() throws Exception {
        InfoVo vo = new InfoVo() ;
        SystemInfo si = new SystemInfo();
        HardwareAbstractionLayer hal = si.getHardware();
        vo.cpuInfoVo = SysCpuUtil.info(hal.getProcessor());
        vo.memInfoVo = SysMemoryUtil.info(hal.getMemory());
        vo.sysInfoVo = SysSysUtil.info();
        vo.jvmInfoVo = SysJvmUtil.info();
        vo.sysFiles = SysFileSysUtil.info(si.getOperatingSystem());
        return vo ;
    }
    @Data
    public static class InfoVo {
        public SysCpuUtil.CpuInfoVo cpuInfoVo ;
        public SysJvmUtil.JvmInfoVo jvmInfoVo ;
        public SysMemoryUtil.MemInfoVo memInfoVo ;
        public LinkedList<SysFileSysUtil.SysFile> sysFiles ;
        public SysSysUtil.SysInfoVo sysInfoVo ;
        public String toString(){
            StringBuilder sb = new StringBuilder() ;
            sb.append("系统信息:\n");
            sb.append("  " + (cpuInfoVo != null?cpuInfoVo.toString():"") + "\n");
            sb.append("  " + (jvmInfoVo != null?jvmInfoVo.toString():"") + "\n");
            sb.append("  " + (memInfoVo != null?memInfoVo.toString():"") + "\n");
            if(sysFiles != null && sysFiles.size() > 0){
                for(SysFileSysUtil.SysFile f : sysFiles){
                    sb.append("  " + f.toString() + "\n");
                }
            }
            sb.append("  " + (sysInfoVo != null?sysInfoVo.toString():"") + "\n");
            return sb.toString() ;
        }
    }
    public static void main(String[] args) throws Exception{
        SysUtil.InfoVo vo = SysUtil.info() ;
        System.out.println(vo.toString());
    }
}