ProcessBuilder使用双引号

时间:2013-05-07 12:16:21

标签: java processbuilder

我在收到有关SSCCE的建议后更新了我的问题。这又是:

我正在尝试使用JDK7u21使用ProcessBuilder执行以下代码:

List<String> cmd = new ArrayList<String>(Arrays.asList(cmdLine));
if (addMetaInfo)
    System.out.println("Executing command '" + cmd + "' on OS '" + System.getProperty("os.name") + "'");
try {
    ProcessBuilder pb = new ProcessBuilder(cmd);
    pb.directory(workingDir);
    proc = pb.start();
} catch (IOException e) {
    System.out.println(e.getMessage());
    throw e;
}

执行上面的代码后,我得到了这个:

Executing command '[C:\MyCLI.cmd, -c, C:\myFile.etl, -d, DateConverter, -l"ERROR", -p"[INPUT1]=2010:06:18", -p"[INPUT2]=2010:06:19"]' on OS 'Windows 7'
Exception in thread "AWT-EventQueue-0" java.lang.IllegalArgumentException: Argument has embedded quote, use the explicit CMD.EXE call.

我还尝试在提供输入后转义-l和-p参数之后的双引号,但它也不起作用。

已经看到了ProcessBuilder adds extra quotes to command line,但没有任何线索。

有人可以帮忙吗?

0 个答案:

没有答案