Windows系统CPU和内存状态实时查询(Java)
一、背景
需要查询Windows服务器的CPU和内存状态。
Linux系统查询CPU和内存状态很简单,一个top命令搞定,Windows就稍微麻烦一些了。
经过资料查找,发现jdk目前不能直接查询系统的CPU和内存状态。
进一步查找,发现可以使用第三方库sigar。
二、sigar库下载
1. github上开放源码库(但是没有编译后的dll文件,需要自己通过VS编译)
2. 直接下载编译后的dll文件,推荐一个好用的地址:
http://api.256file.com/ //一个纯净的下载dll库文件的地方。
三、sigar库的安装
将sigar-amd64-winnt.dll拷贝到C:\Windows\System32路径下。
四、Java库的下载
<!-- https://mvnrepository.com/artifact/org.hyperic/sigar --> <dependency> <groupId>org.hyperic</groupId> <artifactId>sigar</artifactId> <version>1.6.4</version> </dependency>
五、使用的示例
Sigar sigar = new Sigar(); sigar.getCpuPerc().getCombined();//获取总的CPU利用率 Mem mem = sigar.getMem(); Long memTotal = mem.getTotal(); Long memUsed = mem.getUsed(); Long memFree = mem.getFree();
上善若水,水利万物而不争。