在Java中,我们可以使用`Runtime.exec()`方法来调用外部程序。但是,这种方法只能执行没有参数的外部程序。如果需要传递参数给外部程序,我们需要使用`ProcessBuilder`类。
以下是一个简单的示例,展示了如何使用`ProcessBuilder`类调用一个带有参数的外部程序:
```java
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) {
try {
// 创建一个新的ProcessBuilder对象
ProcessBuilder processBuilder = new ProcessBuilder("path_to_your_exe", "arg1", "arg2");
// 启动新的进程
Process process = processBuilder.start();
// 获取进程的标准输出流
BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
// 读取并打印输出
String line;
while ((line = reader.readLine()) != null) {
System.out.println(line);
}
// 等待进程结束
process.waitFor();
} catch (IOException e) {
e.printStackTrace();
}
}
}
```
在这个示例中,我们首先创建了一个新的`ProcessBuilder`对象,并传入了外部程序的路径和参数。然后,我们使用`start()`方法启动新的进程。接下来,我们获取进程的标准输出流,并读取并打印输出。最后,我们使用`waitFor()`方法等待进程结束。
注意:这个示例假设你的Java环境已经安装了Windows操作系统,并且你可以直接运行外部程序。如果你的环境不同,你可能需要修改这个示例以适应你的环境。