在 Java 中提取命令行输出
Java 的 Runtime 类提供了执行命令行程序的能力。然而,获取这些命令生成的输出可能是一项具有挑战性的任务。本文通过解释如何使用 Runtime 类从命令行程序中提取输出来解决此问题。
在提供的代码中,错误消息显示输出流未正确读取。为了纠正这个问题,以下代码演示了一种强大的方法:
Runtime rt = Runtime.getRuntime(); String[] commands = {"system.exe", "-get t"}; Process proc = rt.exec(commands); BufferedReader stdInput = new BufferedReader(new InputStreamReader(proc.getInputStream())); BufferedReader stdError = new BufferedReader(new InputStreamReader(proc.getErrorStream())); // Read the output from the command System.out.println("Here is the standard output of the command:\n"); String s = null; while ((s = stdInput.readLine()) != null) { System.out.println(s); } // Read any errors from the attempted command System.out.println("Here is the standard error of the command (if any):\n"); while ((s = stdError.readLine()) != null) { System.out.println(s); }
此代码利用 Runtime 类来执行命令并打开进程的标准输入和错误流的读取器。然后它迭代输出和错误行,将它们打印到控制台。
有关更全面的详细信息和高级选项,请参阅 ProcessBuilder 上的 Java 文档:https://docs.oracle.com/javase/ 7/docs/api/java/lang/ProcessBuilder.html
以上是如何在Java中高效捕获命令行输出?的详细内容。更多信息请关注PHP中文网其他相关文章!