3

谁能帮我弄清楚为什么在从 java 程序中退出时,我会收到这个奇怪的错误:

diff: extra operand `file1'
diff: Try `diff --help' for more information.

我的 Java 代码如下所示:

Process p = Runtime.getRuntime().exec("diff --brief -I 'REGEXPATTERN' " + file1 + " " + file2);
p.waitFor();

其中 file1 和 file2 是有效文件。当我在常规 shell 中执行命令时,它工作正常。当我从 java 程序执行它时,我得到了那个错误。当我删除时该命令工作正常,-I 'REGEXPATTERN'所以我认为它可能与 -I 标志有关。

为了得到上面提到的错误,我正在检查错误流,如下所示:

BufferedReader errorReader = new BufferedReader(new InputStreamReader(p.getErrorStream()));
4

1 回答 1

4

更新:我通过使用 exec 的重载版本并将其传递一个 String[] 命令来解决它。

String[] command = new String[]{"diff","--brief","-I","'REGEXPATTERN'",file1,file2};
Process p = Runtime.getRuntime().exec(command);
于 2013-10-25T03:34:22.730 回答