我正在使用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时,我怀疑出现了问题。
答案 0 :(得分:0)
尝试在启动进程的线程之外的两个线程中读取输入流和错误流。 我已经看到,如果没有人正在阅读他们正在写的内容,那么进程会被写入错误或输出流。