in src/data/java_profile.rs [92:120]
fn update_process_map(&mut self) -> Result<String, PDError> {
debug!("Running jps (may incur utilization spike)...");
let jps_cmd = Command::new("jps").output();
/*
Output of jps:
lvmid [ classname | JARfilename | "Unknown"]
lvmid [ classname | JARfilename | "Unknown"]
.
.
lvmid [ classname | JARfilename | "Unknown"]
*/
match jps_cmd {
Ok(jps_out) => {
let jps_str = String::from_utf8(jps_out.stdout).unwrap_or_default();
let jps: Vec<&str> = jps_str.split_whitespace().collect();
for i in (0..jps.len()).step_by(2) {
if jps[i + 1] != "Jps" {
self.process_map
.insert(String::from(jps[i]), vec![String::from(jps[i + 1])]);
}
}
Ok(jps_str)
}
Err(e) => Err(PDError::DependencyError(format!(
"Jps command failed. {}",
e
))),
}
}