使用 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()));通过 stdInput,我们可以使用 readLine() 方法逐行检索输出。
while ((s = stdInput.readLine()) != null) { System.out.println(s); }要捕获任何错误,请遵循类似的方法proc.getErrorStream().
BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); while ((s = stdError.readLine()) != null) { System.out.println(s); }通过将这些流合并到代码中,您可以有效地检索通过 Runtime.getRuntime() 执行的命令行程序的输出。
以上是如何使用 Java 的 Runtime.getRuntime() 检索命令行输出?的详细内容。更多信息请关注PHP中文网其他相关文章!