ProcessBuilder-数组参数

时间:2018-08-16 10:45:15

标签: java processbuilder

我正在使用ProcessBuilder从Java应用程序运行.exe。我可以运行.exe,并可以传递标量参数,但是我想知道如何将数组作为参数传递?

我的代码如下:

Process process = new ProcessBuilder(path, 
    Integer.toString(firstParam), 
    "where i want array to be").
    start();

1 个答案:

答案 0 :(得分:0)

使用ProcessBuilder时,命令中的每个元素都是单独的参数。

String[] array = {"Item 1", "Item 2", "Item 3"};
String arg = String.join(",", array);
Process process = new ProcessBuilder("path/to/command.exe", "--argument-name", arg)
            .inheritIO() // replace with your own IO handling if needed
            .start();

我相信您不必担心用引号引起来的arg,因为ProcessBuilder会将它作为一个单独的参数发送给您。

上面应该等同于此命令行:

path/to/command.exe --argument-name "Item 1,Item 2,Item 3"