I have a web program where I want the user to be able to import a .war
file and I can extract certain files out of the .war
file. I have found two class libraries: java.util.zip.*
and java.util.jar.*
. From what I understand, a WAR file is a special JAR file which is a special ZIP file. So would it be better to use java.util.jar
? If ZIP and JAR files are pretty much the same why is there a need for two different libraries?
You can use a turn-around and just deploy the application into tomcat server: just copy/paste under the webapps folder. Once tomcat is started, it will create a folder with the app name and you can access the contents directly
For mac users: in terminal command :
unzip yourWARfileName.war
Just rename the .war
into .jar
and unzip it using Winrar
(or any other archive manager).
If you using Linux or Ubuntu than you can directly extract data from .war
file.
A war
file is just a jar
file, to extract it, just issue following command using the jar
program:
jar -xvf yourWARfileName.war
Like you said, a jar is a zip file (not a special type, but just a plain old zip), so either library could be made to work. The reasoning is that the average person, seeing a *.zip extension, tends to unzip it. Since the app server wants it unzipped, a simple rename keeps people from unzipping it simply out of habit. Likewise, *.war file also should remain uncompressed.
java.util.jar basically just adds additional functionality to java.util.zip with very little extra overhead. Let the java.util.jar be a helper in posting, etc... and use it.
Jar class/package is for specific Jar file mechanisms where there is a manifest that is used by the Jar files in some cases.
The Zip file class/package handles any compressed files that include Jar files, which is a type of compressed file.
The Jar classes thus extend the Zip package classes.
WAR file is just a JAR file, to extract it, just issue following jar command –
jar -xvf yourWARfileName.war
If the jar command is not found, which sometimes happens in the Windows command prompt, then specify full path i.e. in my case it is,
c:\java\jdk-1.7.0\bin\jar -xvf my-file.war
Source: Stackoverflow.com