如何使用Java杀死cmd运行windump.exe

时间:2011-07-04 13:37:16

标签: java runtime.exec processbuilder

我正在尝试从Java调用实用程序windump.exe并在一段时间后(当它的使用结束时)将其终止。

但是,我不确定如何从Java Code中删除它。我尝试过process.destroy()并发送Ctrl Cchar 3)来启动它,但这些都没有效果。 我尝试使用Runtime以及ProcessBuilder来调用并终止进程,但结果是一样的。

我刚开始使用Java,任何建议都会有很大的帮助。这是Java不支持的限制吗?或者从Java代码中查找从cmd开始的二进制文件的方法是什么?

我在Windows 7中使用JavaSE1.6和jre6。以下是代码片段。

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 :(得分:0)

这里的问题是您正在为cmd创建一个进程,该进程本身将为windump.exe创建子进程。 直接从windum.exe开始。