5

我已经下载了 Sigar API ( http://support.hyperic.com/display/SIGAR/Home ),并希望在项目中使用它来获取有关正在运行的不同进程的信息。

我的问题是我真的找不到一些有用的代码片段来学习,而且他们网站上的 javadoc 也没有多大帮助,因为我不知道我应该寻找什么。

你有什么想法我可以找到更多信息吗?

4

4 回答 4

11

要查找pid(查找有关某个进程的信息所需要的),您可以使用ProcessFinder. 查找单个进程 pid 的方法是findSingleProcess(String expression). 例子:

    Sigar sigar=new Sigar();
    ProcessFinder find=new ProcessFinder(sigar);
    long pid=find.findSingleProcess("Exe.Name.ct=explorer");
    ProcMem memory=new ProcMem();
    memory.gather(sigar, pid);
    System.out.println(Long.toString(memory.getSize()));

表达式语法是这样的:

Class.Attribute.operator=value

在哪里:

Class is the name of the Sigar class minus the Proc prefix.
Attribute is an attribute of the given Class, index into an array or key in a Map class.
operator is one of the following for String values:
eq - Equal to value
ne - Not Equal to value
ew - Ends with value
sw - Starts with value
ct - Contains value (substring)
re - Regular expression value matches
operator is one of the following for numeric values:
eq - Equal to value
ne - Not Equal to value
gt - Greater than value
ge - Greater than or equal value
lt - Less than value
le - Less than or equal value

更多信息在这里:http: //support.hyperic.com/display/SIGAR/PTQL

于 2012-09-21T09:51:46.363 回答
2

如果您使用的是 Windows 7,请尝试做一些事情

likefindSingleProcess("State.Name.ct=explorer");
于 2014-03-19T14:26:33.287 回答
0

在他们最新的包中,他们在bindings\java\examples. 去看一下。

于 2013-10-11T07:35:50.830 回答
0

hyperic 站点似乎消失了,但是这个https://layer4.fr/blog/2016/10/10/os-monitoring-with-java/告诉您如何将 Sigar 连接到 Java。您确实需要将 sigar-amd64-winnt.dll 文件放在 DLL 路径的某个位置(例如 C:\Windows)

于 2019-11-14T23:55:04.410 回答