我正在使用Sigar library获取进程ID并对其进行监控。
我有一个可以更改名称的进程,具体取决于运行该进程的应用程序的版本。 例如:
有没有办法使用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$);
答案 0 :(得分:0)
Exe.Name
返回正在运行的进程的路径,而不仅仅是进程的名称。
因此,您的正则表达式应如下所示:
long[] pids = this.find.find("Exe.Name.re=^.*\\\\Photo(.)*.exe$");