import lombok.extern.slf4j.Slf4j;import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;/*** @description: rar解压, 调用winrar.exe* @author: wujie* @create: 2020-07-21 10:03**/
@Slf4j
public class UnRar5Utils {//系统安装的winRAR位置private static final String WINRAR_PATH = "C:\\Program Files\\WinRAR\\WinRAR.exe";/*** windows 解压方法 * @param rarFilePath rar压缩文件路径* @param unFilePath  指定解压路径* @throws IOException * @throws InterruptedException*/public static void unRARFileWindows(String rarFilePath, String unFilePath) throws IOException, InterruptedException {File file = new File(unFilePath);if (!file.exists()) {file.mkdirs();}String cmd = WINRAR_PATH + " x -r -o+ -ibck -y " + rarFilePath + "  " + unFilePath;Runtime runtime = Runtime.getRuntime();Process process = runtime.exec(cmd);InputStreamReader isr = new InputStreamReader(process.getInputStream(), "gbk");BufferedReader br = new BufferedReader(isr);br.close();//等待cmd 命令执行完成process.waitFor();}/*** 采用命令行方式解压文件 Linux* <p>* linux中安装unrar* (1)上传unrar到linux服务器* 如 /usr 路径* (2)解压到指定路径:* tar -zxf /usr/rarlinux-x64-5.7.1.tar.gz -C /usr/local/* (3)建立软连接:必须要有软连接,类似于jdk的环境变量,保证可以在任意目录下使用rar和unrar命令* ln -s /usr/local/rar/rar /usr/local/bin/rar* ln -s /usr/local/rar/unrar /usr/local/bin/unrar* (4)测试是否创建成功* **在任意路径输入下列命令*** rar* unrar* **出现如下信息表示安装成功*** RAR 5.71   Copyright (c) 1993-2019 Alexander Roshal   28 Apr 2019* Trial version             Type 'rar -?' for help** @param rarFilePath 压缩文件路径+文件名* @param destDir     指定解压路径* @return*/public static boolean unRARFileLinux(String rarFilePath, String destDir) throws Exception {log.debug("begin unrar rarFilePath:{},destDir:{}", rarFilePath, destDir);boolean bool = false;File rarFile = new File(rarFilePath);if (!rarFile.exists()) {log.warn(":{} is not exist", rarFilePath);return false;}File destDirPath = new File(destDir);if (!destDirPath.exists()) {destDirPath.mkdirs();}// 开始调用命令行解压,参数-o+是表示覆盖的意思//  String cmdPath = "/usr/local/bin/unrar"; 如果linux做了软连接 不需要这里配置路径String cmd = "rar" + " X -o+ " + rarFile + " " + destDir;log.debug("cmd :{}", cmd);Process proc = Runtime.getRuntime().exec(cmd);if (proc.waitFor() != 0) {if (proc.exitValue() == 0) {bool = false;}} else {bool = true;}log.debug("unRar " + (bool ? "success" : "failed"));return bool;}
}

JAVA解压RAR5压缩包相关推荐

  1. java解压rar5 兼容rar4

    才发现java库没有对rar5压缩算法实现,网上找了一大堆资料,基本都是调用命令的方式,要集成到项目里是很麻烦的,所以一直奔着java解压rar5的目标去找,终于在github上找到了已经实现好的库, ...

  2. java解压rar5 兼容rar4(改bug)

    本篇是为修改原作者bug,原作者:java解压rar5 兼容rar4_So straw?-CSDN博客 在我测试时发现bug,此方法 public int write(byte[] data) thr ...

  3. Java解压rar5压缩文件

    使用代码解压压缩文件,并指定解压后路径 导入依赖 <dependency><groupId>com.github.axet</groupId><artifac ...

  4. java解压zip压缩包报错MALFORMED问题解决

    使用 ZipArchiveInputStream zipInputStream = new ZipArchiveInputStream(file.getInputStream(), "GBK ...

  5. java解压加密压缩包

    https://blog.csdn.net/qq_38723394/article/details/80853154

  6. java读取zip文件名_java无需解压zip压缩包直接读取包内的文件名(含中文)

    java自带了java.util.zip工具可以实现在不解压zip压缩包的情况下读取包内文件的文件名:(注:只能是ZIP格式的,rar我试了不行)代码如下: public static String ...

  7. java压缩包解压之后怎么安装_解压之后压缩包可以删除吗

    1.在电脑正常安装解压缩软件的前提下,右键选择解压,将该文件解压到指定位置.2.解压完成后该文件即可正常运行,如果该文件是一般文档,打开即可查看或者使用,如果该文件是软件程序,选择setup.exe文 ...

  8. Java解压文件Zip,War,Tar,TarGz格式

    Java压缩和解压缩 压缩和解压缩依赖 关于Java解压Zip文件的java.lang.IllegalArgumentException:MALFORMED报错问题. 解压缩代码 Zip解压缩 War ...

  9. gz解压java,java 解压gz

    场景: java解压gz文件,这个是在linux下实验过的 下面是网上的代码 http://www.iteye.com/topic/894879 import java.io.FileInputStr ...

最新文章

  1. Linux编程题:信号量同步三进程依次打印若干次ABC
  2. node.js 验证路径有效性_怎样识别光伏谐波路径?试试这个算法
  3. 工作几年了,API 网关还不懂?
  4. mhd格式三维图像显示_人体面骨三维有限元模型重构及碰撞分析
  5. 数据库迁移用到的命令
  6. asp.net UrlRewrite 技术的实现
  7. C# 3.0 New Language Features (Part 1)
  8. SpringBoot入门 (一) HelloWorld
  9. 恢复删除的Exchange邮箱
  10. 关于LeNet-5卷积神经网络 S2层与C3层连接的参数计算的思考???
  11. IOS错误---“A valid provisioning profile for this executable was not found”
  12. 2019美赛C题o奖论文结构整理
  13. 《第一行代码第三版》总结篇
  14. HANA SQL基础
  15. 同源、跨域、跨站、SameSite与withCredentials
  16. 刨根究底字符编码之九——字符编码方案的演变与字节序
  17. 博客实现浏览量统计次数
  18. 制作一个每日一图小工具
  19. 手把手教你,Stanford Drone 数据集的正确打开方式
  20. JavaScript手机号码号段校验

热门文章

  1. 多线程与高并发(咕泡)
  2. Java基础4:值传递
  3. CSDN夏令营初体验:优麒麟在线中英文字典
  4. matlab米氏方程作图,双倒数作图法米氏方程
  5. CodeForces - 1234B1 Social Network (easy version)
  6. 开源 iOS 性能优化/调试辅助工具集 MTHawkeye
  7. SS00014.elasticsearch——|HadoopElasticSearch集中式日志分析系统.v14|——|Elasticsearch.v14|
  8. Spark2.1.0安装与配置(单机版)
  9. 毫米波太赫兹电路板设计--高频电路板布线损耗分析
  10. 算了,批量下载吧,我的ECMWF数据