小编Dav*_*row的帖子

如何在Java中监视计算机的CPU,内存和磁盘使用情况?

我想用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()返回-1在Windows上).

尽管最初是根据GPL许可,它已经改变Apache 2.0中,这通常可以用于封闭源代码,商业产品.

java memory cpu diskspace cross-platform

176
推荐指数
10
解决办法
24万
查看次数

适用于Java的最佳iCalendar库?

我正在寻找一个库来处理Java中的iCalendar数据.

具有良好对象模型的开源,记录良好的实现是首选.iCal解析功能对我来说不那么重要,但仍然很好.

有没有人有任何建议?

java icalendar

59
推荐指数
2
解决办法
4万
查看次数

你如何远程更新Java应用程序?

我们有一个Java服务器应用程序,它运行在许多计算机上,都连接到Internet,一些在防火墙后面.我们需要从中央站点远程更新JAR文件和启动脚本,而不会对应用程序本身造成明显的中断.

这个过程必须是无人值守和万无一失的(即我们无法承受因不合时宜的互联网中断而破坏应用程序).

在过去,我们使用各种外部脚本和实用程序来处理类似的任务,但由于它们有自己的依赖关系,因此结果难以维护且便于携带.在制作新内容之前,我想从社区获得一些意见.

有人找到了一个很好的解决方案吗?有任何想法或建议吗?

只是为了澄清:这个应用程序是一个服务器,但不适用于Web应用程序(此处没有webapp容器或WAR文件).它只是一个自治的Java程序.

java release-management

17
推荐指数
2
解决办法
2万
查看次数