捕获"定位"使用ProcessBuilder输出

时间:2017-11-24 11:23:44

标签: java linux bash processbuilder locate

我正在使用ProcessBuilder来执行Java中的bash命令,所以我实现了这个以字符串形式处理命令的简单方法:它打印bash命令输出(System.out.println(line);),它是甚至作为结果返回

public String exec(String command) {
    String line, output = "";
    try {
        ProcessBuilder builder = new ProcessBuilder(command.split(" "));
        Process process = builder.start();

        BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream()));

        while ((line = br.readLine()) != null) {
            System.out.println(line);
            output += line + "\n";
        }
    } catch (IOException e) { e.printStackTrace(); }
    return output;
}

使用lsls -l这样的简单命令,我获得了输出结果,但如果我使用locate -br '^target$'(其目的是解释here),我什么都得不到。

我在Unix命令或ProcessBuilder中是否缺少某些内容?为什么不打印locate命令的输出?

(显然我在我的终端尝试了这个命令,它可以在那里工作)

0 个答案:

没有答案