当利用 Java 的 Runtime.getRuntime() 从程序中执行命令提示符命令时,您可能会遇到捕获命令返回的输出的困难。让我们深入研究这个问题,并发现如何使用可靠的方法检索和打印所需的输出。
在您的方法中,尝试使用 System.out.println() 打印 Process 对象 proc 将不会产生任何有意义的结果结果。相反,您需要将 InputStream 从执行的命令传输到 BufferedReader 来访问并随后打印输出。
这是一个更新且功能齐全的代码片段:
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); }
通过利用 BufferedReader ,您可以迭代读取输出行并将其显示在程序中。这种方法提供了一种干净而有效的方法来处理标准输出和执行命令中的潜在错误。
请参阅 Runtime.getRuntime() 的官方 Javadoc 以获取全面的文档和对 ProcessBuilder 等其他选项的见解,提供对流程处理的高级控制。
以上是如何使用 Java 的 Runtime.getRuntime() 捕获并打印命令行程序的输出?的详细内容。更多信息请关注PHP中文网其他相关文章!