Как я могу получить уведомление, когда пакетный файл запускается в Java заканчивается? - PullRequest
1 голос
/ 31 августа 2011

Я выполнил командный файл из моего кода Java, как показано ниже:

Runtime.getRuntime().exec("cmd /c start update.bat");

Я хочу знать, могу ли я получить уведомление, когда этот пакетный скрипт завершится. Является ли это возможным?

С уважением,

Anand

Ответы [ 3 ]

3 голосов
/ 31 августа 2011

Сохраните ссылку на процесс и дождитесь остановки процесса, это остановит ваше исключение.

 Process proc = Runtime.getRuntime().exec("cmd /c start update.bat");
 int exitVal = proc.waitFor();

Сделайте хорошим примером в этой ссылке (когда Runtime.exec () не будет) . Если вы прочитаете всю статью, вы избежите и поймете много подводных камней команды exec.

Затем вы можете прочитать о ProcessBuilder, который является более современным способом вызова других процессов.

1 голос
/ 31 августа 2011

Вы можете использовать Java ProcessBuilder по умолчанию.

  ProcessBuilder builder = new ProcessBuilder("cmd", "/c", "start", "update.bat");
  builder.start();
  builder.waitFor();

Вызов waitFor будет заблокирован, поэтому, как только он вернется, вы узнаете, что ваш пакетный скрипт выполнен.

В качестве альтернативы,Вы можете использовать обыкновенный кувшин.Это имеет больше возможностей для проверки результата и не блокирует ваш поток.См. этот пример о том, как это работает.

1 голос
/ 31 августа 2011

Все, что вам нужно знать, с примерами кода.

http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...