fn update_process_map()

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
            ))),
        }
    }