Linux机器中的Java Process InputStream

时间:2013-10-17 22:13:58

标签: java linux inputstream

我正在使用Java Process,如下所示:

Runtime rt = Runtime.getRuntime();
    try {
        Process pr = rt.exec(cmd);

        response = IOUtils.toString(pr.getInputStream(), "UTF-8");
        response = response.substring(2, response.length()-4);
        logger.debug("response :" + response);
    } catch (IOException e) {
        logger.error(e);
        e.printStackTrace();
    }

我可以在本地计算机(Mac OSX)中看到记录器。但是当我在Redhat Linux机器上运行相同的程序时,我遇到了查看日志的问题。我没有任何线索在 pr.getInputStream()之后发生了什么。在该声明之前有一个记录器工作正常。我希望看到 exec(cmd)的响应。我怎样才能做到这一点。当我试图读取InputStream时,我怀疑出现了问题。

1 个答案:

答案 0 :(得分:0)

尝试在启动进程的线程之外的两个线程中读取输入流和错误流。 我已经看到,如果没有人正在阅读他们正在写的内容,那么进程会被写入错误或输出流。