Java:执行/ cmd/c启动path-with-spaces\program.exe

Hug*_*ues 4 java process

我已经阅读了很多关于这个问题的内容,但我发现的答案并没有完全奏效.

我尝试运行此代码:

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);
Run Code Online (Sandbox Code Playgroud)

因为我的路径中有空格,所以我使用String数组将参数传递给Process但是......它打开了一个DOS命令窗口但是没有启动我的程序,好像参数被忽略了

我尝试使用rt.exec(args)和pb.start()...相同的结果

有人可以给我一些建议吗?谢谢.

Man*_*qui 5

尝试通过在字符串中插入转义引号来在路径周围添加引号,如下所示:

String[] args = {"cmd","/c","start","\"C:\\Program Files\\XML Marker\\xmlmarker.exe\""};
Run Code Online (Sandbox Code Playgroud)

注意\"路径字符串的开头和结尾.