以下のコード スニペットでは、プロセス(つまり)のみをProcess p
使用して破棄すると、破棄されます。しかし、その子ではありません。Java でこのプロセスを終了する方法。p.destroy()
p
cmd.exe
iperf.exe
Process p= Runtime.getRuntime().exec("cmd /c iperf -s > testresult.txt");
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()
機能します。
代わりに次のコードを使用する必要があります。
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);
このコードは正確には機能しませんが、ストリームを少しいじる必要があるだけです。