//Credit to this post as much of the code was sourced from it http://stackoverflow.com/a/37629840
public class ApplicationUtilities {
// http://stackoverflow.com/a/19005828/3764804
private static boolean isProcessRunning(String processName) throws IOException, InterruptedException {
ProcessBuilder processBuilder = new ProcessBuilder("tasklist.exe");
Process process = processBuilder.start();
String tasksList = toString(process.getInputStream());
return tasksList.contains(processName);
}
// http://stackoverflow.com/a/5445161/3764804
private static String toString(InputStream inputStream) {
Scanner scanner = new Scanner(inputStream, "UTF-8").useDelimiter("\\A");
String string = scanner.hasNext() ? scanner.next() : "";
scanner.close();
return string;
}
}
Этот код работает для меня прошлой ночью, однако сейчас, когда я пытался добавить сделать, пока петля isProcessRunning
часть кода будет возвращать только значение ЛОЖЬ. Есть ли что-то, что я делаю неправильно на моем конце, поскольку эти конкретные программы возвращали истинное значение для его запуска, прежде чем я добавил цикл while в другой части программы.Проверяется один файл работает, а другой не
Какое содержимое 'taskList'? Вы попробовали простой 'System.out.println (tasksList)'? – MikaelF