我已经阅读了很多关于这个问题的内容,但我找到的答案并没有完全发挥作用。
我尝试运行此代码:
String[] args = {"cmd","/c","start","C:\\Program Files\\XML Marker\\xmlmarker.exe"};
Runtime rt = Runtime.getRuntime();
ProcessBuilder pb = new ProcessBuilder(args);
Process pr = pb.start();
//Process pr = rt.exec(args);
由于我的路径中有空格,我使用String数组将参数传递给Process 但是......它打开了一个DOS命令窗口但是没有启动我的程序,就像忽略的参数一样
我尝试使用rt.exec(args)和pb.start()......结果相同
有人可以给我一些建议吗? 谢谢。
答案 0 :(得分:5)
尝试在字符串中添加引号,方法是在字符串中插入转义引号,如下所示:
String[] args = {"cmd","/c","start","\"C:\\Program Files\\XML Marker\\xmlmarker.exe\""};
注意路径字符串开头和结尾的\"
。
答案 1 :(得分:4)
无需同时拥有“开始”和“cmd”。你可以安全地取出“开始”。如果使用带有“start”命令的引号括起来的参数,则会将其视为新命令窗口的标题。