3

以下のコード スニペットでは、プロセス(つまり)のみをProcess p使用して破棄すると、破棄されます。しかし、その子ではありません。Java でこのプロセスを終了する方法。p.destroy()pcmd.exeiperf.exe

Process p= Runtime.getRuntime().exec("cmd /c iperf -s > testresult.txt");
4

3 に答える 3

3

Java 7では ProcessBuilderがリダイレクトを行うことができるため、 経由ではなく直接 iperf を実行してくださいcmd.exe

ProcessBuilder pb = new ProcessBuilder("iperf", "-s");
pb.redirectOutput(new File("testresult.txt"));
Process p = pb.start();

結果pは itext 自体になり、必要に応じてdestroy()機能します。

于 2013-07-21T10:15:51.863 に答える
1

代わりに次のコードを使用する必要があります。

Process p= Runtime.getRuntime().exec("iperf -s");
InputStream in = p.getInputStream();
FileOutputStream out = new FileOutputStream("testresult.txt");
byte[] bytes;
in.read(bytes);
out.write(bytes);

このコードは正確には機能しませんが、ストリームを少しいじる必要があるだけです。

于 2013-07-21T09:28:00.627 に答える