java中的空格执行OS X的路径

Gle*_*enn 9 java runtime space escaping

在OS X上,我正在尝试.exec的东西,但是当路径包含空格时,它不起作用.我试过用引号围绕路径,逃避空间,甚至使用\ u0020.

例如,这有效:

Runtime.getRuntime().exec("open /foldername/toast.sh");
Run Code Online (Sandbox Code Playgroud)

但如果有空间,这些都不起作用:

Runtime.getRuntime().exec("open /folder name/toast.sh");

Runtime.getRuntime().exec("open \"/folder name/toast.sh\"");

Runtime.getRuntime().exec("open /folder\\ name/toast.sh");

Runtime.getRuntime().exec("open /folder\u0020name/toast.sh");
Run Code Online (Sandbox Code Playgroud)

想法?

编辑:Escaped反斜杠...仍然没有工作.

Jar*_*die 12

Sun的论坛上有一个关于这个问题的摘要......似乎是一个非常常见的问题,不仅限于OS X.

该主题中的最后一篇文章总结了所提出的解决方案.本质上,使用Runtime.exec带有String[]数组的形式:

String[] args = new String[] { "open", "\"/folder name/toast.sh\"" }; 
Run Code Online (Sandbox Code Playgroud)

或(论坛建议这也会起作用)

String[] args = new String[] { "open", "folder name/toast.sh" };
Run Code Online (Sandbox Code Playgroud)