使用 Java 的 Runtime.getRuntime() 检索命令行输出
为了利用 Java 中命令行实用程序的强大功能,程序员经常使用 Runtime .getRuntime()。虽然这种方法可以轻松执行外部程序,但捕获其输出可能会令人困惑。本文揭示了使用 Runtime.getRuntime() 检索命令行输出的复杂性。
首先,考虑这个简化的示例:
Runtime rt = Runtime.getRuntime(); String[] commands = {"system.exe", "-send", argument}; Process proc = rt.exec(commands);
默认情况下,Runtime.getRuntime().exec () 将返回一个代表已执行程序的 Process 对象。但是,程序生成的输出仍然无法通过 Process 对象本身访问。
要检索输出,需要深入研究与 Process 对象关联的 InputStream。有两个输入流需要考虑:
BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((s = stdInput.readLine()) != null) { System.out.println(s); }
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); while ((s = stdError.readLine()) != null) { System.out.println(s); }
以上是如何使用 Java 的 Runtime.getRuntime() 检索命令行输出?的详细内容。更多信息请关注PHP中文网其他相关文章!