当我这样做时:
ProcessBuilder pb = new ProcessBuilder("ping " + ipText.getText() + " -t -l " + packetSizeText.getText());
pb.redirectOutput(Redirect.to(outputFile));
Process p = pb.start();
我收到此错误:
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
at java.lang.ProcessImpl.create(Native Method)
at java.lang.ProcessImpl.<init>(ProcessImpl.java:386)
at java.lang.ProcessImpl.start(ProcessImpl.java:137)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 23 more
我真的不知道为什么它找不到位于正确位置的文件,它存在,没有任何问题。
这是文件:` private File outputFile = new File("Output.txt");
是的,您可以写入文件,我这样做是为了测试它:
System.out.println(outputFile.canWrite());
`
最佳答案
看看JavaDoc ProcessBuilder
,构造函数需要一个 String
值数组,其中数组中的每个元素都是命令和参数
这意味着构造函数应该看起来更像......
ProcessBuilder pb = new ProcessBuilder(
"ping",
ipText.getText(),
"-t", "-l",
packetSizeText.getText());
pb.redirectOutput(Redirect.to(outputFile));
Process p = pb.start();
关于Java 使用 ProcessBuilder 写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27827737/