目前WinRAR最新使用的是rar5,rar5加密算法并未开源。网上unrar也只能rar4进行解压;
因此通过安装winrar软件,CMD方式调用软件进行解压是一个无奈的选择;

Windows服务器调用winrar

CMD使用winrar详解

Winrar的命令行模式程序在安装目录下的 rar.exe (打包压缩程序),unrar.exe(解压缩程序),Rar.txt(帮助文档)

RAR常用命令示例

  1. //解压压缩文件
  2. "rar X " + compressFile + " " + destDir;
  3. //解压并覆盖解压文件
  4. "rar X -o+ " + compressFile + " " + destDir;
  5. //解压带密码的压缩文件
  6. "rar X -p"+pwd+" "+ compressFile + " "+destDir;
  7. //解压带密码的压缩文件并覆盖解压文件
  8. "rar X -o+ -p"+pwd+" "+ compressFile + " "+destDir;
  9. //解压带密码的压缩文件并覆盖解压文件
  10. "rar X -o+ -p"+pwd+" "+ compressFile + " "+destDir;
  11. //列出压缩文件信息
  12. "rar l -v "+compressFile

Java解压示例

  1. // 开始调用命令行解压,参数-o+是表示覆盖的意思
  2. //winrar软件路径
  3. String winrarPath = "D:/winrar/WinRAR.exe"
  4. //压缩文件路径
  5. String compressFile = "D:/test.rar"
  6. //解压目录
  7. String destDir = "D:/test";
  8. //密码
  9. //String pwd = "123456";
  10. String cmd = winrarPath + " X -o+ " + compressFile + " " + destDir;
  11. //String cmd = "cmd.exe /c "+winrarPath + " X -o+ -p"+pwd+" "+ compressFile + " "+destDir;
  12. System.out.println(cmd);
  13. try {
  14. Process proc = Runtime.getRuntime().exec(cmd);
  15. if (proc.waitFor() != 0) {
  16. if (proc.exitValue() == 0) {
  17. bool = false;
  18. }
  19. } else {
  20. bool = true;
  21. }
  22. } catch (Exception e) {
  23. e.printStackTrace();
  24. }
  25. System.out.println("解压" + (bool ? "成功" : "失败"));

Linux服务器调用winrar

安装linux版rar

  1. 1.下载RAR
  2.   官网下载地址:https://www.rarlab.com/download.htm
  3.   wget下载:wget http://www.rarsoft.com/rar/rarlinux-x64-5.6.1.tar.gz
  4. 2.安装:
  5.   tar -zxf rarlinux-x64-5.0.1.tar.gz
  6.   cd rar
  7.   make && make install
  8. 3.解压/压缩
  9.   解压:rar x ***.rar
  10.   压缩:rar a ***.rar /***