在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反斜杠...仍然没有工作.
我最近将 Java 版本更新为 JDK7u21。在更新21的发行说明中,明确提到了使用Runtime.exec的问题。
因此,我想更改我的代码以使用 ProcessBuilder。我正在尝试执行其中包含空格的命令。但即使为此使用 ProcessBuilder,我也会到达 C:\Users\Parag.Joshi\Documents,而不是确切的目录。
下面是我的代码:
ProcessBuilder p = new ProcessBuilder("cmd", "/c", "explorer ", "C:\Local Disk D\My Tutorial");
p.start();
Run Code Online (Sandbox Code Playgroud)
我查看了Java 执行路径名中带有空格的命令,但没有得到任何线索。