在Java中压缩和解压7z文件

18

我想使用Java代码将文件压缩为zip、rar和7z格式,同时我想在指定位置解压这些文件。请问有人能告诉我如何使用7-zip在Java中进行文件的压缩和解压吗?


4
你试过在搜索引擎中输入“7zip java”吗?你会发现类似7-Zip-JBinding的结果。 - David Schwartz
@user1728310 既然你已经尝试了这么多方法,能否告诉我们你都尝试了什么呢? - Code-Apprentice
如我之前所述,我已经使用了 sevenzipjbinding.jar 和 sevenzipjbinding-Allplatforms.jar,并且能够使用这些 jar 包解压文件。 - user1728310
1
@DavidSchwartz 绑定意味着本地代码。在纯Java环境中可能不是一个选项。 - Thorbjørn Ravn Andersen
显示剩余4条评论
3个回答

14

3

SevenZipBinding 在解压方面表现不错,它甚至可以自动检测格式。问题是它不能进行压缩。你可以使用ZIP4J 创建 zip 归档文件。但它只支持普通的 zip 格式。LZMA 可以将单个文件压缩成 7z 归档文件,但我还没有尝试过。


0

您也可以编写批处理脚本或仅内联命令执行,然后从Java中调用以提取和压缩。请注意,此选项仅适用于Windows平台,并需要一些管理员技能。 7zip提供了一个exe文件来方便这个过程。我已经在我的一个实用程序中使用了它,并且完美地工作。如果您有兴趣,我可以发送给您代码。


你可能是指一个bash脚本,但在Windows上很少能正常工作;或者是一个批处理脚本,在Windows之外很少能正常工作。甚至有一些系统只支持Java而没有任何脚本语言,比如一些手机。 - Olathe
嗨Olate,假设代码将在Windows上运行,因此我指的是批处理脚本。问题没有明确说明它将在Linux还是Windows上运行。你说它不起作用是完全荒谬的,因为我以前做过这个。字符串cmd =“cmd / c”+ [7Zip APP] +“x”+ [ARCHIVE] +“-o”+ [Destination];进程过程= Runtime.getRuntime()。exec(cmd.toString()); 7zip提供了一个应用程序,您可以使用它来提取和压缩。投票反对我的答案??? 在Windows上完美运行。 - Thakhani Tharage
它在Windows上并不一定完美运行。用户必须无误地安装7-Zip软件才能使其正常工作,这相当麻烦,特别是对于不擅长电脑的用户来说(如果他们没有管理员权限,那就更加困难了;他们甚至会知道shell搜索路径存在以便正确设置吗?)。更重要的是,有许多更简单的跨平台解决方案,不需要安装任何额外的软件,并且可以在Linux Web服务器和Android上使用,其中Java被广泛应用。 - Olathe
问题从未指明平台,我很高兴有一个平台无关的jar文件。虽然在问题的上下文中这个解决方案是有效的,但并不需要将它投票否决。 - Thakhani Tharage

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接