Java编程:从Java调用exe并传递参数

Lor*_*o B 84 java exe processbuilder

我正在找出一种从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);
}
Run Code Online (Sandbox Code Playgroud)

以前的代码有效.但是我无法传递参数.MyExe.exe接受参数.另一个问题是PathToExe有空格.ProcessBuilder似乎无法正常工作.例如:

C:\\User\\My applications\\MyExe.exe
Run Code Online (Sandbox Code Playgroud)

谢谢.

Pri*_*ley 115

在构造函数本身传递您的参数.

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


T.J*_*der 7

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