Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 跨平台文件压缩_Java_Perl_Compression_Zip - Fatal编程技术网

Java 跨平台文件压缩

Java 跨平台文件压缩,java,perl,compression,zip,Java,Perl,Compression,Zip,我们需要一个跨平台的解决方案来压缩文件。我们的服务器运行在Windows XP/Vista/7和3个Unix发行版、SunOS、HPUX和AIX上。我们的服务器创建需要压缩的文件,然后再将其设置回客户端。我们最初的想法是用jar压缩文件,因为大多数服务器都安装了java,但显然jre中没有jar,只有jdk。我们的服务器是用C编写的,需要创建压缩文件的应用程序是Perl 我真的想要一些我没有安装的东西,因为我们的安装基数很大,添加新的必需应用程序通常很困难。是否有任何东西可以保证内置到每个操作系

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


我真的想要一些我没有安装的东西,因为我们的安装基数很大,添加新的必需应用程序通常很困难。是否有任何东西可以保证内置到每个操作系统中,我可以使用它来压缩?即使我必须为每个用户使用不同的东西,这也可能是好的。

你可以考虑分配一个开源压缩工具,或者甚至使用压缩SDK作为应用程序的一部分,比如

如果你安装了java(不管JRE或JDK),你可以使用它来创建和解压缩档案。Pack200使用gzip压缩,这是相当标准的

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


如果你这样做,你也可以使用bz2或7zip格式的本机java实现来获得更好的压缩。

我非常喜欢7-zip,但对于像你这样的情况,我总是选择最小公分母或:zip。简单的旧拉链。大多数Unice和linuxes都有
zip
unzip
。对于windows,有很多选项,包括可以操作zip文件的选项。而且客户端可能会安装一个zip客户端。

如果您不想安装任何东西,那么您几乎是SOL。Windows并没有让这变得容易


如果您想自己编写一些东西,那么Java 2标准版(J2SE)和Perl都有

,这在Windows机器上看起来是个赢家,但我似乎在任何Unix机器上都找不到它。它是在非标准的地方还是什么地方?pack200可以在sunjdk中获得,在Linux平台上的JDK_HOME/bin文件夹中。如果你在服务器上安装了GCJ,你就不走运了,必须用Java实现你的小应用程序来创建档案。顺便说一句,jar实际上是zip,所以你所要做的就是将jar重命名为zip,然后你就可以解压缩它了。如果“Java”标记正确,你可以使用Java 1.4(和GZIPInputStream)索尔原来是正确的答案。我们的安装基础千差万别,几乎没有我们所有的客户都有的。看起来我们最终会在较新版本的软件中使用jar(因为我们需要jdk),而较旧版本将有一个捆绑的zip应用程序。谢谢大家的反馈。为了进一步说明,您确实意识到JAR文件是ZIP文件,对吗?这将允许您实现一些向前兼容性。