前言

最近的项目中需要用到解压缩包的功能,客户给出的压缩包的格式主要是rar和zip,因此就打算使用java调用7zip的命令行进行解压文件,本文主要记录一下实现的过程以及其中遇到的问题。

7zip命令行

7z [...] [...][]

7z的commands中包含添加文件到压缩包、从压缩包中删除文件以及提取文件等等多个命令,在这里我就不多赘述,有兴趣的可以在7zip的安装目录使用cmd运行7z.exe查看具体的命令。

今天我们要做的就是使用密码将压缩包中的文件提取出来,具体的命令如下:

7z x 压缩文件源路径 -o要解压的路径 -aoa -bse1 -p密码

• x : 表示从压缩包中提取文件

• -aoa : ao表示覆盖模式,最后的a表示直接覆盖现有文件而不需要任何提示

• -bs < o|e|p > < 0|1|2 >:set output stream for output/error/progress line

-bs命令其实我没有太明白,字面的意思大概是说为输出/错误/进程行设置输出流,如果不设置-bse1属性,当解压缩出现错误,例如文件找不到时,错误提示就会出现在cmd窗口中而不是生成的log文件中,因此必须加上-bse1命令

java通过cmd调用7zip解压

String filePath = "F:\\test\\新建 文本 文档.rar";

//将文件名称中的所有空格都替换为带有双引号的空格

filePath = filePath.replaceAll(" ","\" \"");

String command = "cmd /c start /B D:/工具/7zip/7-Zip/7z.exe x "+filePath+" -oF:/test/ -aoa -bse1 -p123 >F:/test/1.txt";

System.out.println(command);

Runtime.getRuntime().exec(command);

cmd命令解释

• cmd /c start 7z.exe 表示会启动7z来执行后面的命令,7z启动以后原来的cmd窗口会关闭

• cmd /k start 7z.exe 表示会启动7z来执行后面的命令,7z启动以后原来的cmd窗口不会关闭

• /B 表示启动应用程序,但是并不创建新的窗口

通过以上的代码就可以解压完成压缩包文件,如果要知道解压的密码是否正确或者压缩包是否损坏等信息,可以通过获取生成txt日志文件的内容来得知,这个不在本篇范围之后,后续再说。

遇到的问题

7z.exe文件路径找不到

出现该问题是由于7zip的安装路径中存在空格

• 选择7zip安装路径,不要安装在有空格的路径中

• 将路径中的空格使用双引号引起来,如C:“Program Files”\7-Zip或者“C:\Program Files\7-Zip”或者C:\Program“ ”Files\7-Zip

文件路径中存在连续多个空格导致文件找不到

出现该问题是由于

Runtime.getRuntime().exec(command)

方法在执行过程中,会将文件路径中的多个连续空格转换为单个空格,这种情况在文件全路径外面加上双引号也是不管用的

• 替换文件路径中的空格,将每一个空格都替换为带有双引号的空格即可

以上这篇java调用7zip解压压缩包的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

如您喜欢交流学习经验,点击链接加入交流1群:1065694478(已满)交流2群:163560250

java 使用7z进行解压_java调用7zip解压压缩包的实例相关推荐

  1. Mac解压Rar,7z,Zip,Winrar?Mac解压缩软件测评,推荐Mac上免费好用的解压软件,高效解压神器帮您解决苹果电脑的解压缩问题

    Mac电脑自带的的Archive Utility无法解压rar格式,如何在Mac上解压Rar,7z呢?Mac上有没有像window一样能下载7zip,winrar这类的解压软件呢,肯定可以.但在主流的 ...

  2. java 分卷压缩_Apache Commons Compress介绍-Zip压缩解压

    Zip格式应该是最出名的压缩格式之一了,zlib.gzip这些辈分很老的库大家应该都用过,甚至大部分其他格式的压缩库,都可以处理zip格式.Commons Compress当然也少补了对zip格式的支 ...

  3. java zip文件解压(含有密码解压)

    maven需要加入以下依赖: <dependency><groupId>net.lingala.zip4j</groupId><artifactId>z ...

  4. java如何解压rar文件怎么打开_如何在java中实现对zip和rar文件的解压

    如何在java中实现对zip和rar文件的解压 关注:101  答案:1  mip版 解决时间 2021-01-26 10:50 提问者芣①樣哋羙莮 2021-01-25 22:44 如何在java中 ...

  5. linux下 tar解压 gz解压 bz2等各种解压文件使用方法

    点击打开链接 linux下 tar解压 gz解压 bz2等各种解压文件使用方法                .tar 解包:tar xvf FileName.tar 打包:tar cvf FileN ...

  6. macbook上好用的解压软件_全能解压 Mac下最好用的解压缩软件

    今天,小子要来分享的是Mac下一款好用的解压缩软件--全能解压,为什么说它好用呢?因为它拥有一个强大的功能--无需解压即可直接预览,这个功能对于很多朋友来说太实用了! 全能解压是一款RAR文件解压利器 ...

  7. android zip解压简书,iOS解压ZIP压缩包

    步骤: 二:导入头文件 #import "SSZipArchive.h" 三:获取zip压缩包文件路径 获取文件的方式 方法一: NSString* filePath = [[NS ...

  8. 如何解压服务器系统,如何解压Linux系统下的zip文件

    如何解压Linux系统下的zip文件 发布时间:2020-08-10 09:28:56 来源:亿速云 阅读:76 作者:Leah 这期内容当中小编将会给大家带来有关如何解压Linux系统下的zip文件 ...

  9. MAC解压软件推荐——全能解压

    MAC解压软件推荐--全能解压 前言 一直以来,我都没有找到MAC上类似于haozip或者360压缩这样的好用的免费的压缩软件.keka这个软件不能预览压缩包内容,只能将文件解压出来看.而命令行的at ...

最新文章

  1. Java学习之容器上(Collection接口常用方法,Iterator接口,使用foreach循环遍历Collection集合元素,Set集合通用知识(Hashset类,hashcode()与Lin
  2. python接口自动化-参数化
  3. 计算机二级办公室软件应用选择题,计算机二级,办公软件高级应用技术有没有选择题和判断题的...
  4. VHDL设计脉搏计的课程设计
  5. cocos2d-x游戏开发 跑酷(四) 关联与物理世界
  6. Multiverse: Revolutionary Backend for Alembic // Multiverse: 下一代Alembic后端
  7. 织梦重置mysql数据库密码忘记_织梦cms管理员密码忘记了怎么重置找回?
  8. modbustcp封装使用获取设备数据示例
  9. 美国NIST仍在与财政部和国防部就区块链支付跟踪项目合作
  10. 中国开源产品如何走向世界?
  11. 腾讯云TCP运维题库
  12. crc原理及c代码实现
  13. latex 参考文献没有显示_LaTeX 中的参考文献
  14. 实时vad(替换webrtcvad)
  15. Burg法参数化功率谱估计(Python实现版)
  16. 寻道,思考人生的价值(观小米十周年演讲有感)
  17. 基于单片机的踢球智能车系统设计
  18. 白鹭引擎(Egret Engine )
  19. 手机支架3d打印模型_新型高效率酶固定化3D打印支架
  20. 05人月神话读书笔记之一

热门文章

  1. java8高级应用与开发课件和贯穿案例(全)分享
  2. 解决Echarts柱形图正负数在同一侧,并设置正负值不同颜色
  3. Currency Exchange (SPFA)
  4. 大四会计转码 初学c语言的心路历程
  5. Unity3D学习笔记6——GPU实例化(1)
  6. 利用ELK分析Nginx日志生产实战(高清多图)
  7. 【经理人领导力突破训练营】经理人必修课,如何成为成功的经理人?
  8. iOS 真机调试 No profile for team xxxx matching xx found
  9. 关于2018后新款 Mac增加T2安全芯片造成无法U盘启动解决办法
  10. 笔记本高分屏字体模糊_高分屏字体模糊win10怎么办_Win10系统高分屏字体模糊解决方法...