java 命令 解压_java中怎么用cmd命令解压zip文件

展开全部

对于zip文件,java有自带类库java.util.zip;可是要想解62616964757a686964616fe59b9ee7ad9431333365656635压rar文件只能靠第三方类库,我试过两个:com.github.junrar和de.innosystec.unrar,前者解压时可能会出现crcError,后者pom配置时报错;利用cmd命令调用winRAR进行解压,无疑方便快捷很多。

调用cmd命令

public static boolean exe(String cmd) {

Runtime runtime = Runtime.getRuntime();        try {

Process p = runtime.exec(cmd);

BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream(),"GBK"));

String line = reader.readLine();            while(line!=null) {

logger.info(line);

line = reader.readLine();

}

reader.close();            if(p.waitFor()!=0) {                return false;

}

} catch (IOException e) {            // TODO Auto-generated catch block

e.printStackTrace();

} catch (InterruptedException e) {            // TODO Auto-generated catch block

e.printStackTrace();

}        return true;

}123456789101112131415161718192021222324

首先利用runtime.exec()执行指令,得到process,从process.getInputStream()中获取回显字符并打印,打印回显时可能会出现中文乱码,这个和操作系统编码有关,我这里是GBK编码,所以在new inputstreamReader时加入了编码参数”GBK“

命令行字符串

如果需要调用cmd命令,如cd等,可写”cmd \c cd 目录”。对于直接调用exe执行,则可以写成”exe文件绝对路径 参数”,在命令行字符串中,含有空格的路径或者字符串应该再加上引号,即”\”exe文件绝对路径\” \”参数\”“

winRAR调用

我这里安装目录是C:/Program Files/WinRAR,将D:\1.rar 解压到D:,则写成”\”C:/Program Files/WinRAR/unRar.exe\” x -y D:/1.rar D:/”,x代表绝对路径解压,-y表示全部确定;压缩的命令如下:“\”C:/Program Files/WinRAR/rar.exe\” a -ep1 D:\2.rar D:\源目录”,a表示添加文件到压缩文件,-ep1表示排除基本目录,如D:\winrar\rar这个目录,如果没有-ep1那么压缩包中会出现winrar目录路径,而加了之后就只将当前目录打包,只有rar目录

fad470c23d6fb422318ba0cb0905523a.png


版权声明:本文为weixin_42157188原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。