背景
当我们在终端执行命令行时,如果遇到带空格的路径名,往往有两种处理方法
|
|
而当我们在Java使用 Runtime.getRuntime().exec()
执行上面的命令时,却得不到想要的结果
分析
想要解决该问题,首先分析 exec(String cmd)
方法的源码
|
|
public StringTokenizer(String str) {
this(str, “ \t\n\r\f”, false);
}
public StringTokenizer(String str, String delim, boolean returnDelims) {
currentPosition = 0;
newPosition = -1;
delimsChanged = false;
this.str = str;
maxPosition = str.length();
delimiters = delim;
retDelims = returnDelims;
setMaxDelimCodePoint();
}
String[] cmdarray = new String[]{“cat”, “/Users/ciel/Downloads/a b c.txt”};
Process process = Runtime.getRuntime().exec(cmdarray);
InputStream in = process.getInputStream();
InputStreamReader reader = new InputStreamReader(in);
BufferedReader br = new BufferedReader(reader);
StringBuffer sb = new StringBuffer();
String message;
while ((message = br.readLine()) != null) {
sb.append(message);
}
System.out.println(sb);
// 得到文件的内容:
// 测试内容
```
参考资料
文章标题:Java 调用 CMD 命令时路径名带空格的解决方案
文章作者:Ciel Ni
文章链接:http://www.cielni.com/2021/07/24/java-cmd/
有问题或建议欢迎与我联系讨论,转载或引用希望标明出处,感激不尽!