java如何调用第三方exe程序

java如何调用第三方exe程序

作者:Rhett Bai发布时间:2026-02-03阅读时长:0 分钟阅读次数:2

用户关注问题

Q
Java中如何启动一个外部exe程序?

我需要在Java应用程序中执行一个已经存在的.exe文件,应当如何实现调用并启动该外部程序?

A

使用Java的Runtime或ProcessBuilder调用exe程序

可以使用Java的Runtime.getRuntime().exec()方法或ProcessBuilder类来启动外部exe程序。Runtime.exec()方法简单易用,适合基本调用;而ProcessBuilder提供更强的控制能力,例如配置环境变量、重定向输入输出等。示例代码:

Runtime.getRuntime().exec("路径\程序.exe");

或者

ProcessBuilder pb = new ProcessBuilder("路径\程序.exe");
Process process = pb.start();

Q
如何在Java中捕获外部exe程序的输出信息?

调用exe程序后,如何在Java中获取该程序执行过程中产生的输出信息或者错误信息?

A

读取Process的输入流和错误流以获取exe输出

Java执行exe程序后返回一个Process对象,可以通过该对象的getInputStream()和getErrorStream()方法读取标准输出和标准错误信息。使用BufferedReader包装输入流,逐行读取返回数据,便于对外部程序输出进行处理和显示。例如:

BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
同理,可以读取错误流来捕获异常信息。

Q
调用exe程序时如何传递参数给它?

Java执行外部exe时,如何正确向该程序传递命令行参数?

A

在exec或ProcessBuilder中传入完整命令和参数列表

向exe传递参数时,可以将程序路径和每个参数作为独立字符串传入,比如使用ProcessBuilder时传入字符串数组:

ProcessBuilder pb = new ProcessBuilder("程序.exe", "参数1", "参数2");
pb.start();

避免把完整命令写成单个字符串以免发生参数解析错误。传递参数需遵守exe程序本身的参数格式规则。