一尘不染

Java执行路径名称中带有空格的命令

java

如何执行路径名中包含空格的Java System(shell)命令?

我尝试将引号和反斜杠()放在一起,但这不起作用。

ln -s "dir1/dir2" "my\ dir/dir2"

阅读 353

收藏
2020-09-08

共1个答案

一尘不染

到目前为止,最可靠的方法是使用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();
2020-09-08