通过Sigar的部分进程名称获取进程ID

时间:2014-06-13 11:31:37

标签: vmware java sigar

我正在使用Sigar library获取进程ID并对其进行监控。

我有一个可以更改名称的进程,具体取决于运行该进程的应用程序的版本。 例如:

  • myProcess64.exe
  • myProcess65.exe

有没有办法使用Sigar通过指定类似myProcess%的内容来获取进程ID?

现在我正在使用它:

ProcessFinder find = new ProcessFinder(this.sigar);
long[] pids = find.find("Exe.Name.ct=" + this.processName);

我一直在尝试使用PTQL (Process Table Query Language) syntax而不成功使用常规表达式:

//getting the process with name "Photoshop.exe" (not working currently)
long[] pids = find.find("Exe.Name.re=^Photo(.)*.exe$);

1 个答案:

答案 0 :(得分:0)

Exe.Name返回正在运行的进程的路径,而不仅仅是进程的名称。

因此,您的正则表达式应如下所示:

long[] pids = this.find.find("Exe.Name.re=^.*\\\\Photo(.)*.exe$");