как остановить работающий пакетный файл с помощью Java - PullRequest
1 голос
/ 13 января 2012

Мне нужно запустить пакет, используя Java, и через несколько секунд мне нужно остановить запущенный пакетный файл.

вот мой код

try {
        Process process=Runtime.getRuntime().exec("cmd /c start  D:/test.bat");
        Thread.sleep(20*1000);
        process.destroy();
    } catch (Exception e) {
        e.printStackTrace();
    }

моему коду не удалось остановить командный файл.

Ответы [ 3 ]

2 голосов
/ 13 января 2012

Это не так просто, поскольку вам нужно уничтожить только что запущенный процесс независимой операционной системы. Похоже, Как найти и уничтожить запущенные Win-процессы из Java? может вам помочь.

Вкратце: вам нужно найти PID пакетного сценария (на самом деле, cmd процесса, выполняющего ваш пакетный сценарий) и уничтожить его, используя taskkill.

0 голосов
/ 14 января 2016

Если вы запустили java или javaw в своем .bat-файле, вам нужно сначала прекратить работу вашего пакетного файла:

Runtime.getRuntime().exec("taskkill /f /im jqs.exe") ;
Runtime.getRuntime().exec("taskkill /f /im javaw.exe") ;
Runtime.getRuntime().exec("taskkill /f /im java.exe") ;

И остановите cmd (при необходимости)

Runtime.getRuntime().exec("taskkill /f /im cmd.exe") ;

Надеюсь, это поможет!

0 голосов
/ 21 октября 2013

Если пакет запускается в cmd.exe с использованием Java, запустите эту команду

Process prClose = Runtime.getRuntime().exec("taskkill /im cmd.exe");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...