600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java使用oshi获取硬件信息 包括cpu温度

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

时间:2019-02-01 18:00:27

相关推荐

java使用oshi获取硬件信息 包括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);

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。