1 概述
前段时间摸索在Java中怎么获取系统信息包括cpu、内存、硬盘信息等,刚开始使用Java自带的包进行获取,但这样获取的内存信息不够准确并且容易出现找不到相应包等错误,所以后面使用sigar插件进行获取。下面列举出了这两种方式获取系统信息的方式及代码。
2 使用Java自带包获取系统信息
2.1 使用Java自带包获取系统信息代码如下:
2.1.1 Bytes.java
public class Bytes { public static String substring(String src, int start_idx, int end_idx){ byte[] b = src.getBytes(); String tgt = ""; for(int i=start_idx; i<=end_idx; i++){ tgt +=(char)b[i]; } return tgt; } } |
2.1.2 IMonitorService.java
public interface IMonitorService {
public MonitorInfoBean getMonitorInfoBean() throws Exception;
}
2.1.3 MonitorInfoBean.java
public class MonitorInfoBean { private long totalMemory; private long freeMemory; private long maxMemory; private String osName; private long totalMemorySize; private long freePhysicalMemorySize; private long usedMemory; private int totalThread; private double cpuRatio; public long getFreeMemory() { return freeMemory; } public void setFreeMemory(long freeMemory) { this.freeMemory = freeMemory; } public long getFreePhysicalMemorySize() { return freePhysicalMemorySize; } public void setFreePhysicalMemorySize(long freePhysicalMemorySize) { this.freePhysicalMemorySize = freePhysicalMemorySize; } public long getMaxMemory() { return maxMemory; } public void setMaxMemory(long maxMemory) { this.maxMemory = maxMemory; } public String getOsName() { return osName; } public void setOsName(String osName) { this.osName = osName; } public long getTotalMemory() { return totalMemory; } public void setTotalMemory(long totalMemory) { this.totalMemory = totalMemory; } public long getTotalMemorySize() { return totalMemorySize; } public void setTotalMemorySize(long totalMemorySize) { this.totalMemorySize = totalMemorySize; } public int getTotalThread() { return totalThread; } public void setTotalThread(int totalThread) { this.totalThread = totalThread; } public long getUsedMemory() { return usedMemory; } public void setUsedMemory(long usedMemory) { this.usedMemory = usedMemory; } public double getCpuRatio() { return cpuRatio; } public void setCpuRatio(double cpuRatio) { this.cpuRatio = cpuRatio; } } |