2013-12-25 7 views
0

Как я могу получить состояние процесса, то есть оно выполняется или завершено.Как получить статус процесса?

Я создаю новый процесс через:

processBuilder(); 
+1

* "Любая помощь будет оценена. спасибо:" * A '?' добавленный к вопросу, скорее всего, поможет получить помощь, чем добавить такой шум. Кстати - о каком «государстве» вы имеете в виду? Для «завершения» посмотрите на ['Process.waitFor()'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#waitFor%28%29) & [ 'exitValue()'] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#exitValue%28%29). –

+1

Может быть [это] (http://stackoverflow.com/a/11510642/2894369) может вам помочь. – alex2410

+1

Java поставляется с очень полной документацией, проверьте [Process] (http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html) и [ProcessBuilder] (http://docs.oracle.com/javase/7/docs/api/java/lang/ProcessBuilder.html). Если у вас все еще есть проблема, убедитесь, что вы прочитали документацию и улучшили свой вопрос. И FYI: его 'ProcessBuilder' не' processBuilder'. – initramfs

ответ

1

Существует нет прямого метода, который может предоставить вам состояние процесса, если вы используете использование waitFor, тогда ваш текущий поток будет ждать завершения процесса.
Таким образом, вы можете использовать функцию exitValue завернутые в функции что-то вроде этого,

public static boolean isProcessRunning(Process process) 
{ 
    try 
    { 
     process.exitValue(); 
     return false; 
    } 
    catch(IllegalThreadStateException e) 
    { 
     return true; 
    } 
} 

И тогда вы можете продолжать делать другую работу и вызвать выше метод, чтобы проверить состояние, как и в случае необходимости.

+0

ничего себе похоже на мой ответ – user3125280

1
ProcessBuilder pb = new ProcessBuilder("myCommand", "myArg1", "myArg2"); 
Process p = pb.start(); 

следуют

p.exitValue() //throws an IllegalThreadStateException - if the subprocess represented by    //this Process object has not yet terminated. 

бесстыдное копирование и вставка работы с документацией, кстати. Всегда хорошее место для начала.

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