当前位置:   article > 正文

java使用oshi获取硬件信息,包括cpu温度_java获取cpu温度

java获取cpu温度

java使用oshi获取硬件信息,包括cpu温度

 SystemInfo si = new SystemInfo();
            HardwareAbstractionLayer hal = si.getHardware();
            CentralProcessor processor = hal.getProcessor();  //获取cpu信息
            long[] prevTicks = processor.getSystemCpuLoadTicks();
            Util.sleep(1000);
            long[] ticks = processor.getSystemCpuLoadTicks();
            long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()];
            long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()];
            long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()];
            long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()];
            long cSys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()];
            long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()];
            long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()];
            long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()];
            long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal;

            map.put("cpuName", processor.getName());
            map.put("block",processor.getLogicalProcessorCount());//块数
            map.put("cpuUsedLV",new DecimalFormat("#.##").format(1.0-(idle * 1.0 / totalCpu)));//cpu使用率


            Properties props = System.getProperties();
            map.put("vendorName",props.getProperty("os.name"));//系统名称

            //硬盘的信息
            Map drive =  new HashMap();
            ArrayList<Map> arrayList = new ArrayList<>();

            oshi.software.os.OperatingSystem op = si.getOperatingSystem();
            FileSystem fileSystem = op.getFileSystem();
            OSFileStore[] fsArray = fileSystem.getFileStores();
            for (OSFileStore fs : fsArray) {

                drive = new HashMap();

                long free = fs.getUsableSpace();
                long total = fs.getTotalSpace();
                long used = total - free;

                drive.put("name",fs.getName());//盘符名称

                drive.put("driveUses",((int)(((total*1.0)/1024/1024/1024))));//盘符总大小
                drive.put("driveUsed",((int)(((used*1.0)/1024/1024/1024))));//盘使用量
                drive.put("driveUsedLv",(int)((used*1.0 / total*1.0)*100) );//盘使用率
                arrayList.add(drive);
            }
            map.put("driver",arrayList);


            SystemInfo systemInfo = new SystemInfo();
            GlobalMemory memory = systemInfo.getHardware().getMemory();
            long totalByte = memory.getTotal();
            long acaliableByte = memory.getAvailable();

            map.put("memoryAllSize",((int)((memory.getTotal()*1.0)/1024/1024/1024))+"G");//内存总量
            map.put("memoryUsed", ((int)((memory.getTotal() - memory.getAvailable()*1.0)/1024/1024/1024))+"G");//内存使用量
            map.put("memoryUsedLv", new DecimalFormat("#.##").format((totalByte-acaliableByte)*1.0/totalByte));//内存使用率


            InetAddress address = InetAddress.getLocalHost();
            map.put("ip",address.getHostAddress());

            //cpu温度
            Sensors sensors = hal.getSensors();
            double cpuTemperature = sensors.getCpuTemperature();
            map.put("cpuTemperature",cpuTemperature);
  • 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
  • 65
  • 66
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/58918
推荐阅读
相关标签
  

闽ICP备14008679号