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

Posted

技术标签:

【中文标题】在java中压缩和解压缩7z文件【英文标题】:Compressing & Decompressing 7z file in java 【发布时间】:2012-10-08 11:54:01 【问题描述】:

我想使用 java 代码将文件压缩成 zip、rar 和 7z 格式。我还想在指定位置解压缩这些文件。 谁能告诉我如何在java中使用7-zip压缩和解压文件?

【问题讨论】:

您是否尝试将7zip java 输入搜索引擎?你会发现像7-Zip-JBinding 这样的点击。 我试过了,但只能得到文件列表。 转到this page。如果您想要 Windows 版本,顶部有一个链接。 谢谢大卫 我用了这些罐子:sevenzipjbinding.jar Sevenzipjbinding-Allplatforms.jar 但我认为它们只能用于压缩文件的提取。有什么方法可以使用 7-zip 压缩文件吗? @DavidSchwartz 绑定意味着本机代码。这在纯 Java 环境中可能不是一个选项。 【参考方案1】:

我用过: Sevenzipjbinding.jar Sevenzipjbinding-Allplatforms.jar

我现在可以使用这些 jar 解压缩文件。

试试这个链接解压: http://sourceforge.net/projects/sevenzipjbind/forums/forum/757964/topic/3844899

【讨论】:

【参考方案2】:

SevenZipBinding 非常适合解压缩,它甚至可以自动检测格式。问题是它不能压缩。您可以使用ZIP4J 创建 zip 存档。然而,它只提供普通的拉链。 LZMA显然可以将单个文件压缩成7z的压缩包,但是我还没试过。

【讨论】:

【参考方案3】:

您还可以编写一个批处理脚本或只是内联命令执行,您可以从 java 中调用它们来提取和压缩。请注意,此选项仅适用于 Windows 平台,并且需要一些管理技能。 7zip 提供了一个 exe 文件来促进这一点。我已经将它用于我的一个实用程序并且工作得很好。如果您有兴趣,我可以将代码发送给您。

【讨论】:

您的意思要么是 bash 脚本,它在 Windows 上不会经常运行,要么是批处理脚本,它在 Windows 上不会经常运行。甚至有些系统有 Java 但根本没有脚本,比如一些手机。 嗨 Olate 假设代码将在 Windows 上运行,所以我的意思是批处理脚本。该问题没有具体说明它将在 Linux 或 Windows 上运行。你说它不起作用绝对是可笑的,因为我以前做过。 String cmd = "cmd /c" + [7Zip APP] + "x" + [ARCHIVE] + "-o" + [Destination];进程进程 = Runtime.getRuntime().exec(cmd.toString()); 7 zip 提供了一个可用于提取和压缩的应用程序。否决我的答案??? .这在 Windows 上完美运行 它不一定能在 Windows 上完美运行。用户必须正确安装 7-Zip 软件才能使其正常工作,这很麻烦,特别是如果用户对计算机一点也不熟悉(如果他们也没有计算机,那就更难了)管理权限;他们是否会知道 shell 搜索路径存在以便他们可以正确设置它?)。更重要的是,有更简单的多平台解决方案,不需要安装任何额外的软件,也可以在 Linux 网络服务器和 android 上运行,在这些地方使用 Java 很多。 问题从未指定平台,我很高兴有一个独立于平台的 jar。虽然没有必要否决这个解决方案,因为它适用于问题的上下文

以上是关于在java中压缩和解压缩7z文件的主要内容,如果未能解决你的问题,请参考以下文章

Linux中压缩与解压缩:

如何在 Objective C 中压缩、解压缩文件(arm64 支持)

如何在Android中压缩下载的图像并在需要时解压缩?

如何在 C# 中压缩(和解压缩)字节 []?

在Memorystream中压缩和解压缩

如何在 Java 中压缩 JSON 并在 Javascript 中解压缩 [关闭]