0

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

但是,我不确定如何从 Java 代码中杀死它。我已尝试process.destroy()发送Ctrl C( char 3) 来启动它的进程,但这些都不起作用。我尝试使用运行时以及ProcessBuilder调用和终止进程,但结果是相同的。

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

我在 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();
4

1 回答 1

0

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

于 2011-07-04T13:45:22.733 回答