List<ProcessInfo> () { List<ProcessInfo> result; if (SystemInfo.isWindows) { result = getProcessListUsingWinProcessListHelper(); if (result != null) return result; LOG.info("Cannot get process list via " + WIN_PROCESS_LIST_HELPER_FILENAME + ", fallback to wmic"); result = getProcessListUsingWindowsWMIC(); if (result != null) return result; LOG.info("Cannot get process list via wmic, fallback to tasklist"); result = getProcessListUsingWindowsTaskList(); if (result != null) return result; LOG.error("Cannot get process list via wmic and tasklist"); } else if (SystemInfo.isUnix) { if (SystemInfo.isMac) { result = getProcessListOnMac(); } else { result = getProcessListOnUnix(); } if (result != null) return result; LOG.error("Cannot get process list"); } else { LOG.error("Cannot get process list, unexpected platform: " + SystemInfo.OS_NAME); } return Collections.emptyList(); }