我最近将我的Java版本更新为JDK7u21。在更新21的release notes中,使用Runtime.exec明确提到了问题。
因此,我想更改我的代码以使用ProcessBuilder。我正在尝试执行一个带空格的命令。但即使使用ProcessBuilder,我也会登陆C:\ Users \ Parag.Joshi \ Documents而不是确切的目录。
以下是我的代码:
ProcessBuilder p = new ProcessBuilder("cmd", "/c", "explorer ", "C:\Local Disk D\My Tutorial");
p.start();
我看了Java execute a command with a space in the pathname,但没有得到线索。
答案 0 :(得分:4)
我刚在本地机器上测试过它。
由于"explorer "
之后的空格而导致行为。删除该空间,它将工作。您还需要引用\
。
ProcessBuilder p = new ProcessBuilder("cmd", "/c", "explorer",
"C:\\Local Disk D\\My Tutorial");