有没有人能帮我解决一个问题,当我从Java程序中使用shell命令时,为什么会出现这个奇怪的错误:
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()));