任何人都可以帮我弄清楚为什么当从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()));
答案 0 :(得分:4)
更新:我通过使用exec的重载版本并向其传递一个String []命令来解决它。
String[] command = new String[]{"diff","--brief","-I","'REGEXPATTERN'",file1,file2};
Process p = Runtime.getRuntime().exec(command);