2

私は次のような方法を持っています:

public void launch(String cmd, String [] args, String workingDir)

このメソッド内で、ProcessBuilderを呼び出します。

argsパラメーターに含まれる任意の数のargsを含めてProcessBuilderを呼び出すにはどうすればよいですか?

たとえば、次のようなものです。

ProcessBuilder pb = new ProcessBuilder(cmd, args);

ProcessBuilderにこのコンストラクターがあることに気付きました。

ProcessBuilder(List<String> command) 

多分私はそれをどうにかして使うことができた。

4

2 に答える 2

7

ProcessBuilderにはvarargsコンストラクターがあります---ProcessBuilder(String... command)これを使用できますが、コマンドと引数を単一の配列にする必要があります。

それ以外の場合は、次のように他のコンストラクターを使用できます。

List<String> list = new ArrayList<String>(args.length + 1);
list.add(cmd)
list.addAll(Arrays.asList(args));
ProcessBuilder pb = new ProcessBuilder(list);
于 2010-08-03T11:53:37.187 に答える
7

どうですか:

public static void launch(String cmd, String[] args, String workingDir) {
    List<String> strArgs = new ArrayList<String>();
    strArgs.add(cmd);
    strArgs.addAll(Arrays.asList(args));
    ProcessBuilder pb = new ProcessBuilder(strArgs);
}
于 2010-08-03T11:58:24.577 に答える