задержать запуск командного файла - PullRequest
0 голосов
/ 26 февраля 2009

Я задавал этот вопрос раньше. У меня есть следующие требования.

  1. Запустить пакетный файл.
  2. Дайте время для запуска командного файла. 3.Закройте командный файл

У меня есть следующий код, который не соответствует требованию. Пожалуйста, скажите мне, где я допустил ошибку

        Runtime rt = Runtime.getRuntime();
        Process pr = rt.exec(command);
       //pr.exitValue();
        //wait(10000);
        pr.waitFor();
        pr.destroy();

Я использовал waitFor, который не работает. Как я могу дать задержку на 15 минут после выполнения командного файла

Спасибо

Ответы [ 4 ]

1 голос
/ 26 февраля 2009

Если у вас нет потоков, читающих stdIO из пакетного процесса, пакетный процесс может заблокироваться. Даже если вам это не интересно, вы все равно должны прочитать и выбросить. Тогда ваше ожидание имеет лучшую смену работы.

0 голосов
/ 28 ноября 2012

В вашем вопросе не упоминалось о задержке в Java. Вы подразумеваете, что задержка должна быть в командном файле после выполнения Java-программы. Поэтому вы можете настроить его на любое количество времени. Вот 20 секундный пример:

@ECHO off
REM.-- End of application
:: do something here
GOTO :END
:: you could put functions here
:END
FOR /l %%a in (20,-1,1) do (TITLE %title% -- closing in %%as&ping -n 2 -w 1 127.0.0.1>NUL)
TITLE Press any key to close the application&ECHO.&GOTO:EOF
PAUSE>nul
0 голосов
/ 26 февраля 2009

Я не уверен, что вы хотите, но с

Thread.sleep (900000);

можно подождать 15 минут.

0 голосов
/ 26 февраля 2009

Предложение: возьмите выходные данные и потоки ошибок и посмотрите, что они распечатывают. Вы можете увидеть, что с командным файлом произошла ошибка, из-за которой он возвращается быстрее, чем вы ожидаете.

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