как убить cmd запустить windump.exe с помощью Java - PullRequest
0 голосов
/ 04 июля 2011

Я пытаюсь вызвать утилиту windump.exe из Java и убить ее через некоторое время (когда ее использование закончено).

Но я не уверен, как убить его из кода Java. Я попытался process.destroy() и отправил Ctrl C (char 3) процессу, который запустил его, но ничего из этого не работает. Я попытался с Runtime, а также ProcessBuilder, чтобы вызвать и убить процесс, но результат тот же.

Я только начал использовать Java, любое предложение будет очень полезным. Это ограничение, которое Java не поддерживает? Или как убить двоичный файл, запущенный в cmd из кода Java?

Я использую JavaSE1.6 и jre6 в Windows 7. Ниже приведен фрагмент кода.

ProcessBuilder pb = new ProcessBuilder("cmd","/c start D:\\windump.exe -s 0 -i 5 -A -w D:\\vne.pcap");
Process WinDumpProc = null;
WinDumpProc = pb.start();

Thread.sleep(3000);
BufferedWriter out = new BufferedWriter (new OutputStreamWriter(WinDumpProc.getOutputStream())); 

out.write((char)3);
out.flush();
WinDumpProc.destroy();

1 Ответ

0 голосов
/ 04 июля 2011

Проблема здесь в том, что вы создаете процесс для cmd, который сам создаст дочерний процесс для windump.exe. Вместо этого запустите прямо windum.exe.

...