2017-02-09 3 views
0
//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 в другой части программы.Проверяется один файл работает, а другой не

+0

Какое содержимое 'taskList'? Вы попробовали простой 'System.out.println (tasksList)'? – MikaelF

ответ

0

Никогда не думал, что я написал неправильную программу в неверную переменную и не делал эту программу тем же (она не выполнялась) и меняла другую переменную на программы, которые выполнялись, поэтому она возвращала false, потому что программа действительно была не работает

Смежные вопросы