linux系统下java执行带rar命令解压带有空格的文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux系统下java执行带rar命令解压带有空格的文件相关的知识,希望对你有一定的参考价值。
最近在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得不到流。
大家有没有遇到这样的问题呢?
帮着解决下哦
今天去试了下,在终端能够用使用转意字符\ 和引号,但是在程序里面还是得不到流啊。也就是命令没起作用
test file.rar 实际引用的时候就是 test\ file.rar
至于怎么解决 我就不再多说了哈 参考技术A 将命令封装为脚本文件,通过调用脚本文件去执行命令 参考技术B 1:使用单引号而非双引号
2:使用转意字符\
以上是关于linux系统下java执行带rar命令解压带有空格的文件的主要内容,如果未能解决你的问题,请参考以下文章