1

我一直在使用 sigar 开发网络监视器来收集系统信息,但现在我需要获取 Oracle 的 RAM 和 CPU 使用情况。我使用 sigar.getProcCpu(pid).getTotal() 函数做到了。

但是当我在 glassfish 4 上部署应用程序时,我收到错误消息:org.hyperic.sigar.SigarPermissionDeniedException:访问被拒绝。

有什么解决方法吗?我可以让 sigar 访问我请求的信息吗?

4

1 回答 1

1

我遇到了和你一样的问题。在我提出问题并找到答案后,我找到了这篇文章。这是我对自己问题的回答:

在您以管理员权限运行程序之前,操作系统不允许您的程序访问进程信息,因此我需要提供管理员权限。

有一些方法可以提供管理员权限,包括要求用户右键单击图标并选择“以管理员身份运行”。

但更好的方法可能是将您的 java 应用程序包装在一个 .exe 中,就像这里这里所说的那样。

但是,我可能不得不像 excowboy 所说的那样破解操作系统,因为我想在网页上显示信息并且不能将我的应用程序包装在 .exe 文件中。

我想我必须放弃。只需将这些链接提供给可能需要它的人。:) 哦,如果您愿意,可以访问总 CPU 使用率,顺便说一句。

希望这对您有所帮助,并为我糟糕的英语感到抱歉。;)

于 2013-11-26T01:56:29.190 回答