我有两个文件作为输入,我使用Beyond Compare工具Java API检查两个文件中的内容是否相同。
我想在不打开Beyond Compare窗口的情况下执行此操作。以下是我目前使用的代码。
// /settings.gradle
include ':app', ':lib'
// /app/build.gradle
depencency {
compile project(':lib')
}
如此处enter link description here所述,使用ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Beyond Compare 4\\BCompare.exe",
"file1path", "file2path","/qc=bin", "\silent");
Process ps;
try {
ps = processBuilder.start();
OutputStream os = ps.getOutputStream();
os.close();
InputStream inputStream = ps.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
for (String line = bufferedReader.readLine(); line != null; line = bufferedReader.readLine()) {
}
ps.waitFor();
System.out.println("Exit value :" + ps.exitValue());
} catch (IOException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
将无法打开窗口。尽管使用/silent
,我仍然可以看到Beyond Compare工具弹出的窗口。请建议一些解决方法来实现相同的
答案 0 :(得分:1)
我通过稍微更改传递给Process Builder的参数来满足我的要求。以下是我所做的改变。
ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Beyond Compare 4\\BCompare.exe",
"file1path", "file2path","/fv=Text Compare", "/qc=binary");
这对我有用。