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