如何提取java中的.war文件?ZIP vs JAR

sqougxex  于 2023-01-29  发布在  Java
关注(0)|答案(9)|浏览(148)

我有一个Web程序,我希望用户能够导入一个.war文件,并可以从.war文件中提取某些文件。java.util.zip.*java.util.jar.*。据我所知,一个WAR文件是一个特殊的JAR文件,它是一个特殊的ZIP文件。那么使用java.util.jar会更好吗?如果ZIP和JAR文件非常相似,为什么需要两个不同的库呢?

nwsw7zdq

nwsw7zdq1#

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

jar -xvf yourWARfileName.war

如果找不到jar命令(有时在Windows命令提示符中会发生这种情况),请指定完整路径,即在我的示例中是完整路径。

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

70gysomp2#

如果查看JarFile API,您会发现它是ZipFile类的子类。
特定于jar的类大多只是添加了特定于jar的功能,比如直接支持清单文件属性等等。
这是OOP“在运行”;因为jar文件是zip文件,所以jar类可以使用zip功能并提供附加的实用程序。

dzhpxtsq

dzhpxtsq3#

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

l2osamch

l2osamch4#

如果您使用的是Linux或Ubuntu,则可以直接从.war文件中提取数据。
一个war文件只是一个jar文件,要提取它,只需使用jar程序发出以下命令:

jar -xvf yourWARfileName.war
c7rzv4ha

c7rzv4ha5#

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

lo8azlld

lo8azlld6#

就像你说的,jar * 是 * 一个zip文件(不是一个特殊的类型,只是一个普通的老zip),所以任何一个库都可以工作。原因是普通人看到 .zip扩展名,倾向于解压缩它。因为应用服务器希望它解压缩,一个简单的重命名可以防止人们出于习惯解压缩它。同样,.war文件也应该保持未压缩状态。
jar基本上只是在www.example.com上添加了额外的功能java.util.zip,额外的开销非常小。让java.util.jar成为发布等方面的助手,并使用它。

wj8zmpe1

wj8zmpe17#

Jar类/包用于特定的Jar文件机制,其中存在Jar文件在某些情况下使用的清单。
Zip文件类/包处理包括Jar文件的任何压缩文件,Jar文件是压缩文件的一种类型。
Jar类因此扩展了Zip包类。

vddsk6oq

vddsk6oq8#

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

unzip yourWARfileName.war
rkue9o1l

rkue9o1l9#

这是解除战争档案的方法

mkdir mywarfile
cp -r mywarfile.war mywarfile/
cd mywarfile/
jar -xvf mywarfile.war
ls
rm -rf mywarfile.war

相关问题