在OS X上,我正在尝试.exec的东西,但是当路径包含空格时,它不起作用.我试过用引号围绕路径,逃避空间,甚至使用\ u0020.
例如,这有效:
Runtime.getRuntime().exec("open /foldername/toast.sh");
但如果有空间,这些都不起作用:
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");
想法?
编辑:Escaped反斜杠...仍然没有工作.
在Sun的论坛上有一个关于这个问题的摘要......似乎是一个非常常见的问题,不仅限于OS X.
该主题中的最后一篇文章总结了所提出的解决方案.本质上,使用Runtime.exec
带有String[]
数组的形式:
String[] args = new String[] { "open", "\"/folder name/toast.sh\"" };
或(论坛建议这也会起作用)
String[] args = new String[] { "open", "folder name/toast.sh" };