用什么代替路径中的空格字符?

时间:2011-01-20 12:12:20

标签: java path cygwin

我从Java应用程序启动bash,并且我在我的路径中执行在bash空间内执行的命令 (例如cd / Documents and Settings / test),我使用Process Builder运行命令但是当路径有空格时它不起作用。我尝试用%20替换空格但没有帮助。怎么办?

4 个答案:

答案 0 :(得分:9)

您可以将完整路径封装在引号中,如下所示:

String quoted = "\"" + pathString + "\"";

或者,当你使用bash时,转义空格:

String escaped = pathString.replace(" ", "\\ ");

两者都应该作为cd命令的参数。

答案 1 :(得分:4)

封装引号之间的整个路径。

cd "/Documents and Settings/test"

答案 2 :(得分:3)

在这里使用%20是无稽之谈,它不是URL。使用String []或List []而不是String,然后你可以保留空格,没有更多的cmd线args分裂。

所以你可以使用

"cd", "/Documents and Settings/test"

然而,这作为shell命令毫无意义。当你开始一个新的过程时,你无法以这种方式改变Java的工作目录。您可能希望编写一个shell脚本(批处理文件)并从Java调用它。

答案 3 :(得分:3)

您需要运行一个可以从bash提示符运行的命令。例如cd /文档和设置/不会。请尝试使用cd C:Documents\ and\ Settings

注意:bash要求您在开始时使用C:来访问此文件夹。在开始时使用/将为您提供cygwin的虚拟根目录。