1

我有两个文件作为输入,我正在使用 Beyond Compare 工具 Java API 检查两个文件中的内容是否相同。

我想在不打开 Beyond Compare 窗口的情况下执行此操作。下面是我目前正在使用的代码。

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不会打开窗口。尽管使用/silent,我仍然可以看到 Beyond Compare 工具的弹出窗口。请建议一些解决方法以实现相同的目标

4

1 回答 1

1

我通过稍微更改传递给 Process Builder 的参数来满足我的要求。以下是我所做的更改。

ProcessBuilder processBuilder = new ProcessBuilder("C:\\Program Files\\Beyond Compare 4\\BCompare.exe",
        "file1path", "file2path","/fv=Text Compare", "/qc=binary");

这对我有用。

于 2017-04-11T11:46:15.697 回答