首页 > Java > java教程 > 正文

如何在 Java 中执行外部程序并捕获其输出?

Barbara Streisand
发布: 2024-10-30 09:29:02
原创
290 人浏览过

How to Execute External Programs in Java and Capture Their Output?

如何在 Java 中执行外部程序

在处理复杂任务或与外部系统交互时,Java 开发人员经常需要执行外部程序从他们的代码中。虽然概念上很简单,但此任务可能会带来各种挑战,例如进程管理、参数传递和错误处理。

在 Java 中执行外部程序的一种常见方法是利用 Runtime.getRuntime().exec () 方法。此方法采用字符串数组作为参数,其中第一个元素表示可执行路径,后续元素充当命令行参数。

虽然问题中提供的代码使用此方法,但它无法捕获输出或与外部程序交互。为了纠正这个问题,我们可以采用基于进程的方法:

<code class="java">Process process = new ProcessBuilder("C:\PathToExe\MyExe.exe", "param1", "param2").start();</code>
登录后复制

此代码创建一个 ProcessBuilder 对象,指定可执行文件及其参数。随后,它通过调用 start() 方法来启动外部程序,返回一个代表子进程的 Process 对象。

要与子进程交互并访问其输出,我们可以利用输入和输出流:

<code class="java">InputStream is = process.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);

String line;
System.out.printf("Output of running %s is:", Arrays.toString(args));

while ((line = br.readLine()) != null) {
  System.out.println(line);
}</code>
登录后复制

此代码从子进程打开一个输入流,创建一个读取器,然后逐行迭代输出,将其显示在控制台上。

通过使用进程基于此的方法,我们可以有效地执行外部程序,管理其输入和输出,并全面处理错误。提供的代码可以作为开发人员寻求通过 Java 代码与外部系统交互的起点。

以上是如何在 Java 中执行外部程序并捕获其输出?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!