Différences entre les emballages JAR et WAR

1. Vue d'ensemble

Dans ce tutoriel rapide, nous allons nous concentrer sur les différences entre les packages JAR et WAR en Java.

Tout d'abord, nous définirons chaque option d'emballage séparément. Ensuite, nous résumerons leurs différences.

2. Emballage JAR

En termes simples, JAR - ou Java Archive - est un format de fichier de package. Les fichiers JAR ont l' extension .jar et peuvent contenir des bibliothèques, des ressources et des fichiers de métadonnées.

Il s'agit essentiellement d'un fichier compressé contenant les versions compressées des fichiers .class et les ressources des bibliothèques et applications Java compilées.

Par exemple, voici une structure de fichier JAR simple:

META-INF/ MANIFEST.MF com/ baeldung/ MyApplication.class 

Le fichier META-INF / MANIFEST.MF peut contenir des métadonnées supplémentaires sur les fichiers stockés dans l'archive.

Nous pouvons créer un fichier JAR en utilisant la commande jar ou avec des outils comme Maven.

3. Emballage WAR

WAR signifie Web Application Archive ou Web Application Resource. Ces fichiers d'archive ont l' extension .war et sont utilisés pour empaqueter des applications Web que nous pouvons déployer sur n'importe quel conteneur Servlet / JSP.

Voici un exemple de disposition d'une structure de fichier WAR typique:

META-INF/ MANIFEST.MF WEB-INF/ web.xml jsp/ helloWorld.jsp classes/ static/ templates/ application.properties lib/ // *.jar files as libs

À l'intérieur, il contient un répertoire META-INF contenant des informations utiles dans le MANIFEST.MF sur l'archive Web. Le répertoire META-INF est privé et n'est pas accessible de l'extérieur.

D'autre part, il contient également le répertoire public WEB-INF avec toutes les ressources Web statiques, y compris les pages HTML, les images et les fichiers JS. De plus, il contient le fichier web.xml , les classes de servlet et les bibliothèques.

Nous pouvons utiliser les mêmes outils et commandes que nous avons utilisés pour créer un JAR afin de créer une archive .war .

4. Différences clés

Alors, quelles sont les principales différences entre ces deux types d'archives?

La première et la plus évidente différence est l' extension de fichier . Les fichiers JAR ont l' extension .jar , tandis que le fichier WAR a l' extension .war .

La deuxième différence principale est leur objectif et leur mode de fonctionnement . Les fichiers JAR nous permettent de conditionner plusieurs fichiers afin de les utiliser comme bibliothèque, plugin ou tout type d'application. D'autre part, les fichiers WAR ne sont utilisés que pour les applications Web.

La structure des archives est également différente. Nous pouvons créer un JAR avec n'importe quelle structure souhaitée. En revanche, WAR a une structure prédéfinie avec des répertoires WEB-INF et META-INF .

Enfin, nous pouvons exécuter un JAR à partir de la ligne de commande si nous le construisons en tant que JAR exécutable sans utiliser de logiciel supplémentaire. Ou, nous pouvons l'utiliser comme bibliothèque. En revanche, nous avons besoin d'un serveur pour exécuter un WAR .

5. Conclusion

Dans cet article rapide, nous avons comparé les types d'empaquetage Java .jar et .war . Ce faisant, nous avons également noté que si les deux utilisent le même format de fichier ZIP, il existe plusieurs différences importantes.