【问题标题】:Java writing to a file using ProccesBuilderJava 使用 ProccesBuilder 写入文件
【发布时间】:2015-01-08 04:12:03
【问题描述】:

当我这样做时:

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());

`

【问题讨论】:

标签: java


【解决方案1】:

看看JavaDoc ProcessBuilder,构造函数想要一个String值的数组,其中数组中的每个元素都是命令和参数

这意味着构造函数应该看起来更像...

 ProcessBuilder pb = new ProcessBuilder(
      "ping",
      ipText.getText(), 
      "-t", "-l",
      packetSizeText.getText());
 pb.redirectOutput(Redirect.to(outputFile));
 Process p = pb.start();

【讨论】:

  • 这是一个不错的改变
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-11
  • 2012-03-29
  • 2016-03-30
  • 1970-01-01
  • 2015-07-30
相关资源
最近更新 更多