Java 使用 ProcessBuilder 写入文件

标签 java

当我这样做时:

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/

相关文章:

java - 如何将组组件左对齐

java - 帮助在 Swing 中绘制自定义图形

java - 根据日期对哈希集进行排序

java - 使用 OpenGL 更改 Java 中纹理中的某些颜色

java - Spark-maven 全新安装 : How to compile both Java and Scala classes

java - 自定义 Android LocationListener 问题

java - Android: 包 android.support.v7.app.AlertDialog 不存在

java - 如何在 Eclipse Java 中禁用 "auto correct"

java - 模拟系统类以获取系统属性

java - Axis 加载模块 - 创建临时文件并失败