zoukankan      html  css  js  c++  java
  • java获取服务器信息

    引入依赖

    build.gradle

    compile 'net.java.dev.jna:jna:5.6.0'
    compile 'net.java.dev.jna:jna-platform:5.6.0'
    compile 'com.github.oshi:oshi-core:5.3.7'
    compile 'cn.hutool:hutool-all:5.5.6'
    

    mvaen

    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna</artifactId>
        <version>5.6.0</version>
    </dependency>
    <dependency>
        <groupId>net.java.dev.jna</groupId>
        <artifactId>jna-platform</artifactId>
        <version>5.6.0</version>
    </dependency>
    <dependency>
        <groupId>com.github.oshi</groupId>
        <artifactId>oshi-core</artifactId>
        <version>5.3.7</version>
    </dependency>
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.5.6</version>
    </dependency>
    

    代码

    private String format(long size) {
        if (size < 1024) {
            return size + "B";
        } else {
            size = size / 1024;
        }
        if (size < 1024) {
            return size + "KB";
        } else {
            size = size / 1024;
        }
        if (size < 1024) {
            size = size * 100;
            return size / 100 + "." + size % 100 + "MB";
        } else {
            size = size * 100 / 1024;
            return size / 100 + "." + size % 100 + "GB";
        }
    }
    
    @Test
    public void info() {
        Console.log("======= 操作系统信息 ======");
        OsInfo osInfo = SystemUtil.getOsInfo();
        Console.log("操作系统:{}", osInfo.getName());
        Console.log("系统版本:{}", osInfo.getVersion());
        Console.log("系统架构:{}", osInfo.getArch());
        Console.log("JVM总内存:{}", format(SystemUtil.getTotalMemory()));
        Console.log("JVM剩余内存:{}", format(SystemUtil.getFreeMemory()));
    
        Console.log("======= java信息 ======");
        JavaRuntimeInfo runtimeInfo = SystemUtil.getJavaRuntimeInfo();
        Console.log("java版本:{}", runtimeInfo.getVersion());
        Console.log("java架构:{}", runtimeInfo.getSunArchDataModel());
        Console.log("java目录:{}", runtimeInfo.getHomeDir());
    
        SystemInfo systemInfo = new SystemInfo();
        HardwareAbstractionLayer hardware = systemInfo.getHardware();
        OperatingSystem operatingSystem = systemInfo.getOperatingSystem();
    
        Console.log("======= CPU信息 ======");
        CentralProcessor cpu = hardware.getProcessor();
        CentralProcessor.ProcessorIdentifier cpuInfo = cpu.getProcessorIdentifier();
        Console.log("cpu数量:{}", cpu.getPhysicalPackageCount());
        Console.log("cpu核心数:{}", cpu.getPhysicalProcessorCount());
        Console.log("cpu线程数:{}", cpu.getLogicalProcessorCount());
        Console.log("cpuID:{}", cpuInfo.getProcessorID());
        Console.log("cpu名称:{}", cpuInfo.getName());
        Console.log("cpu标识:{}", cpuInfo.getIdentifier());
    
        Console.log("======= 主板信息 ======");
        ComputerSystem computer = hardware.getComputerSystem();
        Console.log("主板型号:{}", computer.getModel());
        Console.log("主板序列号:{}", computer.getSerialNumber());
    
        Console.log("======= 内存信息 ======");
        GlobalMemory memory = hardware.getMemory();
        Console.log("内存大小:{}", format(memory.getTotal()));
        Console.log("可用内存:{}", format(memory.getAvailable()));
        Console.log("==========");
        List<PhysicalMemory> memoryList = memory.getPhysicalMemory();
        memoryList.forEach((item) -> {
            Console.log("内存型号:{}", item.getManufacturer());
            Console.log("内存规格:{}", item.getMemoryType());
            Console.log("内存主频:{}", format(item.getClockSpeed()));
            Console.log("内存大小:{}", format(item.getCapacity()));
            Console.log("==========");
        });
    
        Console.log("======= 物理磁盘信息 ======");
        List<HWDiskStore> diskList = hardware.getDiskStores();
        diskList.forEach((disk) -> {
            Console.log("名称:{}", disk.getName());
            Console.log("型号:{}", disk.getModel());
            Console.log("序号:{}", disk.getSerial());
            Console.log("大小:{}", format(disk.getSize()));
            Console.log("==========");
        });
    
        Console.log("======= 逻辑磁盘信息 ======");
        FileSystem fileSystem = operatingSystem.getFileSystem();
        List<OSFileStore> fileList = fileSystem.getFileStores(true);
        fileList.forEach((file) -> {
            Console.log("名称:{}", file.getName());
            Console.log("UUID:{}", file.getUUID());
            Console.log("盘符:{}", file.getMount());
            Console.log("文件类型:{}", file.getType());
            Console.log("总大小:{}", format(file.getTotalSpace()));
            Console.log("剩余大小:{}", format(file.getUsableSpace()));
            Console.log("==========");
        });
    }
    

    输出

    ======= 操作系统信息 ======
    操作系统:Windows 10
    系统版本:10.0
    系统架构:amd64
    JVM总内存:243.0MB
    JVM剩余内存:189.0MB
    
    ======= java信息 ======
    java版本:1.8.0_221-b11
    java架构:64
    java目录:C:appJavax64jdk1.8.0_221jre
    
    ======= CPU信息 ======
    cpu数量:1
    cpu核心数:4
    cpu线程数:8
    cpuID:BFEBFBFF000906E9
    cpu名称:Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    cpu标识:Intel64 Family 6 Model 158 Stepping 9
    
    ======= 主板信息 ======
    主板型号:Inspiron 15 7000 Gaming
    主板序列号:58D9Y32
    
    ======= 内存信息 ======
    内存大小:15.86GB
    可用内存:5.18GB
    ==========
    内存型号:Samsung
    内存规格:DDR4
    内存主频:2.23GB
    内存大小:8.0GB
    ==========
    内存型号:SK Hynix
    内存规格:DDR4
    内存主频:2.23GB
    内存大小:8.0GB
    ==========
    
    ======= 物理磁盘信息 ======
    19:22:14.526 [main] DEBUG oshi.util.platform.windows.PerfCounterQuery - Localized PhysicalDisk to PhysicalDisk
    名称:\.PHYSICALDRIVE0
    型号:KINGSTON SUV500M8240G (标准磁盘驱动器)
    序号:50026B768258ACA9
    大小:223.56GB
    ==========
    名称:\.PHYSICALDRIVE1
    型号:TOSHIBA MQ01ABD100 (标准磁盘驱动器)
    序号:           87C3S6KZS
    大小:931.51GB
    ==========
    
    ======= 逻辑磁盘信息 ======
    名称:本地固定磁盘 (C:)
    UUID:e4769774-92f9-431e-ad1d-96963d9d03bc
    盘符:C:
    文件类型:NTFS
    总大小:221.37GB
    剩余大小:88.8GB
    ==========
    名称:本地固定磁盘 (D:)
    UUID:81c881c4-76ff-48af-b0c1-2070f753310f
    盘符:D:
    文件类型:NTFS
    总大小:300.0GB
    剩余大小:218.97GB
    ==========
    名称:本地固定磁盘 (E:)
    UUID:a689f086-7265-4c3e-b622-8a641787dd5e
    盘符:E:
    文件类型:NTFS
    总大小:300.72GB
    剩余大小:136.71GB
    ==========
    名称:本地固定磁盘 (F:)
    UUID:8c126ad0-bf59-457d-8c2f-e3248e03e9f7
    盘符:F:
    文件类型:NTFS
    总大小:330.65GB
    剩余大小:213.28GB
    ==========
    
  • 相关阅读:
    国标ikecin插座资料
    LED平面管测试资料
    elementui使用MessageBox 弹框自定义内容$msgbox:实现一个textarea文本输入框
    ajax请求的时候后台有三个服务器地址
    前端用xshell向后端服务器部署项目
    vue+echarts 实现map3D地图tooltip弹框读取后台返回的数据,并显示弹框
    AWS网络架构及知识概述
    K8s控制器 StatefulSet
    pod的数据持久化2 NFS
    Pod的数据持久化1 hostPath 和emptyDir
  • 原文地址:https://www.cnblogs.com/lixingwu/p/14226631.html
Copyright © 2011-2022 走看看