Comment extraire.fichiers de guerre en java? ZIP vs POT


J'ai un programme web où je veux que l'utilisateur soit en mesure d'importer un .war fichier et je peux extraire certains fichiers de la .war fichier. J'ai trouvé deux bibliothèques de classes: java.util.zip.* et java.util.jar.*. D'après ce que je comprends, un fichier WAR est un fichier JAR spécial qui est un fichier ZIP spécial. Serait-il donc préférable d'utiliser java.util.jar? Si les fichiers ZIP et JAR sont à peu près les mêmes, pourquoi faut-il deux bibliothèques différentes?

Author: Tom11, 2011-10-24

8 answers

Si vous regardez l'API JarFile, vous verrez que c'est une sous-classe de la classe ZipFile.

Les classes spécifiques à jar ajoutent simplement des fonctionnalités spécifiques à jar, comme la prise en charge directe des attributs de fichier manifeste, etc.

C'est OOP "en action"; puisque les fichiers jar sont des fichiers zip, les classes jar peuvent utiliser la fonctionnalité zip et fournir un utilitaire supplémentaire.

 23
Author: Dave Newton, 2011-10-24 22:38:55

WAR file est juste un fichier JAR, pour l'extraire, il suffit d'émettre la commande jar suivante -

jar -xvf yourWARfileName.war

Si la commande jar n'est pas trouvée, ce qui arrive parfois dans l'invite de commande Windows, spécifiez le chemin complet, c'est-à-dire dans mon cas,

 c:\java\jdk-1.7.0\bin\jar -xvf my-file.war
 130
Author: iltaf khalid, 2016-08-31 18:03:26

Renommez simplement le .war en .jar et décompressez-le en utilisant Winrar (ou tout autre gestionnaire d'archives).

 10
Author: Mehdi, 2016-02-05 13:48:07

Si vous utilisez Linux ou Ubuntu, vous pouvez extraire directement les données du fichier .war.

Un fichier war est juste un fichier jar, pour l'extraire, il suffit d'émettre la commande suivante en utilisant le programme jar:

jar -xvf yourWARfileName.war
 3
Author: Karan, 2016-02-05 13:19:00

Comme vous l'avez dit, un jar est un fichier zip (pas un type spécial, mais juste un ancien zip), donc l'une ou l'autre bibliothèque pourrait fonctionner. Le raisonnement est que la personne moyenne, voir *.extension zip, a tendance à décompresser. Depuis le serveur d'application veut décompressé, un simple renommer empêche les gens de le décompresser simplement par habitude. Pareillement, *.le fichier de guerre doit également rester non compressé.

Java.util.jar ajoute simplement des fonctionnalités supplémentaires à java.util.zip avec très peu frais généraux supplémentaires. Laissez le java.util.jar être une aide dans l'affichage,etc... et de l'utiliser.

 0
Author: Affable Geek, 2011-10-24 22:37:47

La classe/paquet Jar est pour des mécanismes de fichier Jar spécifiques où il y a un manifeste qui est utilisé par les fichiers Jar dans certains cas.

La classe/paquet de fichier Zip gère tous les fichiers compressés qui incluent des fichiers Jar, qui est un type de fichier compressé.

Les classes Jar étendent ainsi les classes de package Zip.

 0
Author: r0ast3d, 2011-10-24 22:39:26

Vous pouvez utiliser un retournement et simplement déployer l'application dans le serveur tomcat: il suffit de copier/coller sous le dossier webapps. Une fois tomcat démarré, il créera un dossier avec le nom de l'application et vous pourrez accéder directement au contenu

 0
Author: M. Dhaouadi, 2018-11-18 08:57:56

Pour les utilisateurs mac: dans la commande terminal:

unzip yourWARfileName.war
 0
Author: Olivier Royo, 2020-03-04 15:51:02