2012-01-13 4 views
1

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

вот мой код

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

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

ответ

2

Это не так просто, так как вам нужно убить независимый процесс операционной системы, который вы только что начали. Похоже, How to find and kill running Win-Processes from within Java? может вам помочь.

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

0

Если партия работает в cmd.exe с помощью Java, запустить этот

Process prClose = Runtime.getRuntime().exec("taskkill /im cmd.exe"); 
0

Если запустить 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") ; 

Надеется, что это поможет!