liurunyu
2025-03-21 fb50c6c8111fffd16091ce25d5d389ea3fcc560f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
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());
    }
}