linux系统下java执行带rar命令解压带有空格的文件

来源:百度知道 编辑:UC知道 时间:2024/06/14 10:04:38
最近在linux系统下解析rar文档,应为java没有解析rar的库,所以只能用rar的命令来解析。
在用rar命令时,遇到了问题:如果rar文件名中带有空格,那么就没法用命令了,命令失去了意义。
我想过可能是要加引号吧,或是加其他什么分隔号的,我试了很多中分隔的方法,但是都没有实现。
我试了下,在linux系统下,用java程序,只要加了引号,程序就根本解析不了rar。(命令后得到的流对象为空)
当时我在linux的后台命令下执行加引号,却能够执行。
我又到windows下去,windows下加引号是可以解决的。在程序里也能解决。
我那程序是用java的Runtime、和Process两个类
具体做法是
String commd = "unrar 的命令";
Runtime rt = Runtime.getRuntime() ;
Process p = rt.exec(commd);

InputStream inputStream = p.getInputStream();

如果在执行命令时,rar文件中文件名有空格,则没有办法生成有效的进程。p得不到流。

大家有没有遇到这样的问题呢?
帮着解决下哦
今天去试了下,在终端能够用使用转意字符\ 和引号,但是在程序里面还是得不到流啊。也就是命令没起作用

linux下的文件名引用的时候空格要加转义 比如

test file.rar 实际引用的时候就是 test\ file.rar

至于怎么解决 我就不再多说了哈

1:使用单引号而非双引号
2:使用转意字符\