调用可执行文件并传递参数

2022-08-31 11:31:52

我正在研究一种从Java调用exe并传入特定参数的机制。我该怎么办?

Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe").start();
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);
}

前面的代码有效。但是我无法传入参数。MyExe.exe接受参数。另一个问题是当PathToExe有空格时。ProcessBuilder似乎不起作用。例如:

C:\\User\\My applications\\MyExe.exe

谢谢。


答案 1

在构造函数本身中传递参数。

Process process = new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();

答案 2

您走在正确的轨道上。这两个构造函数接受参数,或者您可以在构造后使用 ProcessBuilder#command(java.util.List)ProcessBuilder#command(String...) 指定它们。


推荐