跨平台文件压缩

时间:2009-08-11 21:56:38

标签: java perl compression zip

我们需要一个用于压缩文件的跨平台解决方案。我们的服务器运行在Windows XP / Vista / 7和3个Unix发行版,SunOS,HPUX和AIX上。我们的服务器创建需要压缩的文件,然后再将其设置回客户端。我们最初的想法是用jar压缩文件,因为大多数服务器都安装了java,但显然jar不包含在jre中,只包含jdk。我们的服务器是用C语言编写的,需要创建压缩文件的应用程序是Perl。

我真的很喜欢我没有安装的东西,因为我们的安装基础很大并且添加新的必需应用程序通常很困难。是否有任何保证可以内置到我可以用于压缩的每个操作系统中?即使我必须为每个使用不同的东西,也可能没问题。

4 个答案:

答案 0 :(得分:7)

如果您不想安装任何东西,那么您就是SOL。 Windows并不容易。

如果你想自己写一些东西java.util.zip在Java 2标准版(J2SE)中,Perl有Archive::Zip

答案 1 :(得分:4)

我非常喜欢7-zip,但对于像你这样的情况,我总是选择最不常见的denominataor:ZIP。简单的旧ZIP。大多数Unices和linux都有zipunzip。对于Windows,有许多选项,包括7-zip,可以操作zip文件。可能客户端将安装一个zip客户端。

答案 2 :(得分:1)

您可以随时考虑分发开源压缩工具,甚至使用压缩SDK作为应用的一部分,例如7 ZIP's

答案 3 :(得分:1)

如果您安装了Java(无论是JRE还是JDK),您都可以使用pack200unpack200来创建和解压缩存档。 Pack200使用非常标准的gzip压缩。

您应该注意,pack200不允许在一个存档中压缩多个文件(gzip的性质)。如果需要,您可以在纯Java中实现自己的工具,该工具将创建zip文件并使用统一命令行界面在任何地方运行(Java具有内置zip支持,请参阅some samples)。

如果你走这条路,你也可以使用bz2或7zip格式的原生java实现来获得更好的压缩。