【发布时间】:2012-08-20 22:26:16
【问题描述】:
我需要使用 ProcessBuilder 构建以下命令:
"C:\Program Files\USBDeview\USBDeview.exe" /enable "My USB Device"
我尝试了以下代码:
ArrayList<String> test = new ArrayList<String>();
test.add("\"C:\\Program Files\\USBDeview\\USBDeview.exe\"");
test.add("/enable \"My USB Device\"");
ProcessBuilder processBuilder = new ProcessBuilder(test);
processBuilder.start().waitFor();
但是,这会将以下内容传递给系统(使用 Sysinternals Process Monitor 验证)
"C:\Program Files\USBDeview\USBDeview.exe" "/enable "My USB Device""
注意/enable 之前的引号和Device 之后的两个引号。我需要去掉那些额外的引号,因为它们会使调用失败。有谁知道怎么做?
【问题讨论】:
-
很好的观察!是否有任何文档描述 ProcessBuilder 用双引号引用每个参数?
标签: java windows process processbuilder