如何在Java中监视计算机的CPU,内存和磁盘使用情况?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了如何在Java中监视计算机的CPU,内存和磁盘使用情况?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1674字,纯文字阅读大概需要3分钟。
内容图文
![如何在Java中监视计算机的CPU,内存和磁盘使用情况?](/upload/InfoBanner/zyjiaocheng/953/71dc838c04424058a6932b86603c498e.jpg)
我想用Java监视以下系统信息:
>当前CPU使用率**(百分比)
>可用内存*(免费/总计)
>可用磁盘空间(免费/总计)
*请注意,我的意思是整个系统可用的整体内存,而不仅仅是JVM.
我正在寻找一种不依赖于我自己的代码调用外部程序或使用JNI的跨平台解决方案(Linux,Mac和Windows).虽然这些是可行的选择,但如果有人已经拥有更好的解决方案,我宁愿不自己维护特定于操作系统的代码.
如果有一个免费的库可以通过可靠的跨平台方式实现这一点,那将是很好的(即使它进行外部调用或使用本机代码本身).
任何建议都非常感谢.
为了澄清,我想获得整个系统的当前CPU使用率,而不仅仅是Java进程.
SIGAR API在一个软件包中提供了我正在寻找的所有功能,因此它是迄今为止我的问题的最佳答案.但是,由于它是根据GPL许可的,我不能将它用于我的原始目的(封闭源,商业产品). Hyperic可能会将SIGAR许可用于商业用途,但我还没有调查过.对于我的GPL项目,我将来肯定会考虑SIGAR.
根据我目前的需求,我倾向于以下方面:
>对于CPU使用情况,OperatingSystemMXBean.getSystemLoadAverage()/ OperatingSystemMXBean.getAvailableProcessors()(每个CPU的平均负载)
>对于内存,OperatingSystemMXBean.getTotalPhysicalMemorySize()和OperatingSystemMXBean.getFreePhysicalMemorySize()
>对于磁盘空间,File.getTotalSpace()和File.getUsableSpace()
限制:
getSystemLoadAverage()和磁盘空间查询方法仅在Java 6下可用.此外,某些JMX功能可能并非对所有平台都可用(即,据报道getSystemLoadAverage()在Windows上返回-1).
虽然最初根据GPL许可,但它在has been changed到Apache 2.0之间,一般可用于封闭源,商业产品.
解决方法:
按照我提到的in this post行.我建议你使用SIGAR API.我在我自己的一个应用程序中使用SIGAR API,这很棒.你会发现它是稳定的,得到很好的支持,并且充满了有用的例子.它是开源的,具有GPL 2 Apache 2.0许可证.看看这个.我觉得它会满足你的需求.
使用Java和Sigar API,您可以获得内存,CPU,磁盘,负载平均,网络接口信息和指标,进程表信息,路由信息等.
内容总结
以上是互联网集市为您收集整理的如何在Java中监视计算机的CPU,内存和磁盘使用情况?全部内容,希望文章能够帮你解决如何在Java中监视计算机的CPU,内存和磁盘使用情况?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。