我正在找到一种从Java调用可执行文件并传递特定参数的机制。我该怎么做?
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
谢谢您。
new ProcessBuilder("C:\\PathToExe\\MyExe.exe","param1","param2").start();
这段代码用于启动一个进程,其中包括可执行文件的路径和参数。它可以用于处理选项参数吗?例如,-h 表示帮助等等。 - Lorenzo BProcessBuilder
既不知道也不关心。关于带有空格的路径:这就是为什么参数被表示为离散字符串而不是像命令行和某些糟糕的API中的以空格分隔的列表之一的原因之一。放心地加入空格,整个程序路径将被传递给操作系统以适当处理。 - T.J. Crowder