我需要使用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流程监视器进行验证)
"C:\Program Files\USBDeview\USBDeview.exe" "/enable "My USB Device""
注意
/enable
前的引号和Device
后的两个引号。我需要去掉那些额外的引号,因为它们会使调用失败。有人知道怎么做吗? 最佳答案
据我所知,由于ProcessBuilder不知道如何将参数传递给命令,因此需要将参数分别传递给ProcessBuilder;
ArrayList<String> test = new ArrayList<String>();
test.add("\"C:\\Program Files\\USBDeview\\USBDeview.exe\"");
test.add("/enable");
test.add("\"My USB Device\"");