Java 使用双引号的ProcessBuilder

Java 使用双引号的ProcessBuilder,java,processbuilder,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("o

在收到关于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;
}
我还尝试在提供输入时转义-l和-p参数后的双引号,但也不起作用

已经看到了,但没有线索


有人能帮忙吗?

你试过使用单引号吗?嗨@Andrew Thompson:为什么是SSCCE?是的,我理解,但为什么它不是简短、独立、正确的可编译示例?以什么方式失败?无论使用Runtime.exec还是ProcessBuilder,都不能直接从Java运行.cmd脚本,您需要使用cmd/c。
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.