我正在尝试从Java调用实用程序windump.exe并在一段时间后(当它的使用结束时)将其终止。
但是,我不确定如何从Java Code中删除它。我尝试过process.destroy()
并发送Ctrl C
(char 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();
答案 0 :(得分:0)
这里的问题是您正在为cmd创建一个进程,该进程本身将为windump.exe创建子进程。 直接从windum.exe开始。