如何执行路径名中包含空格的Java System(shell)命令?
我尝试将引号和反斜杠()放在一起,但这不起作用。
ln -s "dir1/dir2" "my\ dir/dir2"
到目前为止,最可靠的方法是使用Runtime.exec(String [] cmdarray)。
如果使用Runtime.exec(String command),则Java仅在空白处分割命令。
使用调用new StringTokenizer(command)创建的StringTokenizer将命令字符串分解为令牌,而无需进一步修改字符类别。然后以相同的顺序将令牌生成器生成的令牌放置在新的字符串数组cmdarray中。
另请参见g ++:找不到文件
或使用ProcessBuilder这样的东西:
ProcessBuilder pb = new ProcessBuilder("ln", "-s", "dir1/dir2", "my dir/dir2"); Process p = pb.start();