如何在java中提取.war文件? ZIP与JAR

时间:2011-10-24 22:33:38

标签: java jar zip war

我有一个网络程序,我希望用户能够导入.war文件,我可以从.war文件中提取某些文件。我找到了两个类库:java.util.zip.*java.util.jar.*。根据我的理解,WAR文件是一个特殊的JAR文件,它是一个特殊的ZIP文件。那么使用java.util.jar会更好吗?如果ZIP和JAR文件几乎相同,为什么需要两个不同的库?

8 个答案:

答案 0 :(得分:104)

WAR文件只是一个JAR文件,要提取它,只需发出以下jar命令 -

jar -xvf yourWARfileName.war

如果找不到jar命令,有时会在Windows命令提示符中找到,那么请指定完整路径,即在我的情况下是,

 c:\java\jdk-1.7.0\bin\jar -xvf my-file.war

答案 1 :(得分:21)

如果查看JarFile API,您会看到它是ZipFile类的子类。

特定于jar的类主要只是添加特定于jar的功能,例如直接支持清单文件属性等等。

这是OOP“行动”;由于jar文件是zip文件,因此jar类可以使用zip功能并提供额外的实用程序。

答案 2 :(得分:11)

只需将.war重命名为.jar,然后使用Winrar(或任何其他存档管理器)将其解压缩。

答案 3 :(得分:1)

如果使用Linux或Ubuntu,则可以直接从.war文件中提取数据。

war文件只是一个jar文件,要提取它,只需使用jar程序发出以下命令:

jar -xvf yourWARfileName.war

答案 4 :(得分:0)

就像你说的那样,jar 一个zip文件(不是一种特殊的类型,而只是一个普通的旧zip),所以任何一个库都可以使用。原因是普通人看到* .zip扩展名,往往会解压缩它。由于应用服务器希望它解压缩,因此简单的重命名可以防止人们仅仅因为习惯而解压缩它。同样,* .war文件也应保持未压缩状态。

java.util.jar基本上只是为java.util.zip添加了额外的功能而且只需要很少的额外开销。让java.util.jar成为发布等的帮助者......并使用它。

答案 5 :(得分:0)

Jar类/包用于特定的Jar文件机制,在某些情况下,Jar文件使用了一个清单。

Zip文件类/包处理包含Jar文件的压缩文件,这是一种压缩文件。

Jar类因此扩展了Zip包类。

答案 6 :(得分:0)

您可以使用周转方法,只需将应用程序部署到tomcat服务器中即可:只需在webapps文件夹下复制/粘贴即可。 一旦tomcat启动,它将创建一个具有应用名称的文件夹,您可以直接访问内容

答案 7 :(得分:0)

对于Mac用户:在终端命令中:

unzip yourWARfileName.war