1、百度很好搜索到sigar.jar, 将包加入到工程中,引的类如下。import java.net.InetAddress;import java.net.UnknownHostException;import java.util.Map;import java.util.Properties;import org.hyperic.sigar.CpuInfo;import org.hyperic.sigar.CpuPerc;import org.hyperic.sigar.FileSystem;import org.hyperic.sigar.FileSystemUsage;import org.hyperic.sigar.Mem;import org.hyperic.sigar.NetFlags;import org.hyperic.sigar.NetInterfaceConfig;import org.hyperic.sigar.NetInterfaceStat;import org.hyperic.sigar.OperatingSystem;import org.hyperic.sigar.Sigar;import org.hyperic.sigar.SigarException;import org.hyperic.sigar.Swap;
2、创建获取内存的方法。private static void memory() throw衡痕贤伎s SigarException {Sigar sigar = new Sigar();Mem mem = sigar.getMem();// 内存总量System.out.println("内存总量: " + mem.getTotal() / 1024L + "K av");// 当前内存使用量System.out.println("当前内存使用量: " + mem.getUsed() / 1024L + "K used");// 当前内存剩余量System.out.println("当前内存剩余量: " + mem.getFree() / 1024L + "K free");Swap swap = sigar.getSwap();// 交换区总量System.out.println("交换区总量: " + swap.getTotal() / 1024L + "K av");// 当前交换区使用量System.out.println("当前交换区使用量: " + swap.getUsed() / 1024L + "K used");// 当前交换区剩余量System.out.println("当前交换区剩余量: " + swap.getFree() / 1024L + "K free");}
3、创建获取CPU 物理属性private static void cpu() throws SigarException {Sigar sigar = new Si爿讥旌护gar();CpuInfo infos[] = sigar.getCpuInfoList();CpuPerc cpuList[] = null;cpuList = sigar.getCpuPercList();for (int i = 0; i < infos.length; i++) {// 不管是单块CPU还是多CPU都适用CpuInfo info = infos[i];System.out.println("第" + (i + 1) + "块CPU信息");System.out.println("CPU的总量MHz: " + info.getMhz());// CPU的总量MHzSystem.out.println("CPU生产商: " + info.getVendor());// 获得CPU的卖主,如:IntelSystem.out.println("CPU类别: " + info.getModel());// 获得CPU的类别,如:CeleronSystem.out.println("CPU缓存数量: " + info.getCacheSize());// 缓冲存储器数量printCpuPerc(cpuList[i]);}}
4、创建获取CPU 使用情况的方法。private static void printCpuPerc(CpuPerc cpu) {System.out.println("CPU用户使用率: " + CpuPerc.format(cpu.getUser()));// 用户使用率System.out.println("CPU系统使用率: " + CpuPerc.format(cpu.getSys()));// 系统使用率System.out.println("CPU当前等待率: " + CpuPerc.format(cpu.getWait()));// 当前等待率System.out.println("CPU当前错误率: " + CpuPerc.format(cpu.getNice()));//System.out.println("CPU当前空闲率: " + CpuPerc.format(cpu.getIdle()));// 当前空闲率System.out.println("CPU总的使用率: " + CpuPerc.format(cpu.getCombined()));// 总的使用率}
5、public static void main(String[] args) {// cpu信息cpu();System.out.println("----------------------------------");//内存使用情况memory() ;System.out.println("----------------------------------");// CPU使用情况信息printCpuPerc();System.out.println("----------------------------------");}