Как я могу получить состояние процесса, то есть оно выполняется или завершено.Как получить статус процесса?
Я создаю новый процесс через:
processBuilder();
Как я могу получить состояние процесса, то есть оно выполняется или завершено.Как получить статус процесса?
Я создаю новый процесс через:
processBuilder();
Существует нет прямого метода, который может предоставить вам состояние процесса, если вы используете использование waitFor
, тогда ваш текущий поток будет ждать завершения процесса.
Таким образом, вы можете использовать функцию exitValue
завернутые в функции что-то вроде этого,
public static boolean isProcessRunning(Process process)
{
try
{
process.exitValue();
return false;
}
catch(IllegalThreadStateException e)
{
return true;
}
}
И тогда вы можете продолжать делать другую работу и вызвать выше метод, чтобы проверить состояние, как и в случае необходимости.
ничего себе похоже на мой ответ – user3125280
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.
бесстыдное копирование и вставка работы с документацией, кстати. Всегда хорошее место для начала.
* "Любая помощь будет оценена. спасибо:" * 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). –
Может быть [это] (http://stackoverflow.com/a/11510642/2894369) может вам помочь. – alex2410
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