如何在 Java 中执行外部程序并捕获其输出?
如何在 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中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

公司安全软件导致部分应用无法正常运行的排查与解决方法许多公司为了保障内部网络安全,会部署安全软件。...

将姓名转换为数字以实现排序的解决方案在许多应用场景中,用户可能需要在群组中进行排序,尤其是在一个用...

系统对接中的字段映射处理在进行系统对接时,常常会遇到一个棘手的问题:如何将A系统的接口字段有效地映�...

在使用IntelliJIDEAUltimate版本启动Spring...

在使用MyBatis-Plus或其他ORM框架进行数据库操作时,经常需要根据实体类的属性名构造查询条件。如果每次都手动...

Java对象与数组的转换:深入探讨强制类型转换的风险与正确方法很多Java初学者会遇到将一个对象转换成数组的�...

电商平台SKU和SPU表设计详解本文将探讨电商平台中SKU和SPU的数据库设计问题,特别是如何处理用户自定义销售属...

Redis缓存方案如何实现产品排行榜列表的需求?在开发过程中,我们常常需要处理排行榜的需求,例如展示一个�...
