Différence entre jar et war en Java

Quelle est la différence entre un .jar et a .war fichier? Est-ce seulement l'extension de fichier ou y a-t-il quelque chose de plus?

351
demandé sur codeforester 2011-05-03 18:31:03

12 réponses

De Conseils Java: différence entre les fichiers EAR jar et war:

Ces fichiers sont simplement des fichiers zippés utilisation de l'outil java jar. Ces fichiers sont créé à des fins différentes. Ici est la description de ces fichiers:

  • .fichiers jar: la .les fichiers jar contiennent bibliothèques, ressources et fichiers Accessoires comme les fichiers de propriétés.

  • .fichiers war: le fichier war contient Web application qui peut être déployé sur n'importe quel servlet/JSP conteneur. Le .le fichier war contient jsp, html, javascript et autres fichiers nécessaire pour le développement du web application.


Description officielle de Sun / Oracle:


Wikipédia articles:

304
répondu aioobe 2015-08-03 09:15:58

Un .war fichier a une structure spécifique en termes de où certains fichiers seront. À part ça, oui, c'est juste un .jar.

60
répondu T.J. Crowder 2011-05-03 14:33:13

La principale différence entre un pot et une guerre est qu'un pot n'est pas vraiment un format à usage unique, alors qu'une guerre l'est. Avec un fichier JAR, vous pouvez empaqueter beaucoup de choses différentes. Habituellement, vous empaquetez des classes Java, mais vous pouvez mettre à peu près n'importe quoi dans un fichier JAR, et vous pouvez créer des fichiers JAR qui ont les fichiers et les formats de répertoire que vous voulez. Par exemple, Oracle (au moins dans 8.1.x) utilise en fait des fichiers JAR pour distribuer le logiciel Oracle sur les CD d'installation, et IBM les utilise pour distribuez une version installable de la documentation pour WebSphere. Techniquement, vous pouvez mettre des pages JSP, des pages HTML, des classes de servlet,etc. dans un bocal, mais vous n'utilisez généralement pas - vous utilisez une guerre.

Les fichiers WAR sont des fichiers JAR avec un format spécifique. Ce format est défini dans la spécification de servlet (que vous pouvez regarder sur le java.sun.com site). Essentiellement, le fichier WAR est un format standard pour les applications web qui a des répertoires spécifiques et des fichiers spécifiques. Cela inclut un répertoire WEB-INF, un WEB-INF / web.fichier xml utilisé pour décrire l'application, un répertoire WEB-INF / lib pour les fichiers JAR utilisés par l'application, et un répertoire WEB-INF/classes pour les fichiers de classe qui ne sont pas distribués dans un JAR. Vous mettriez également les pages (JSPS et HTML) dans la guerre. Ensuite, vous pouvez distribuer votre application en un seul fichier, au lieu d'une collection d'images, de pages HTML et de classes Java.

47
répondu Selami Ozlu 2014-01-06 14:20:02

Vous ajoutez des composants web à une application J2EE dans un package appelé web application archive (WAR), qui est un JAR similaire au package utilisé pour les bibliothèques de classes Java. Une guerre contient généralement d'autres ressources en plus des composants web, y compris:

  • classes utilitaires Côté Serveur (beans de base de données, paniers, etc.).
  • ressources Web statiques (fichiers HTML, image et son, etc.)
  • classes côté Client (applets et classes utilitaires)

Une guerre a une structure de répertoire hiérarchique spécifique. Le répertoire de niveau supérieur D'une guerre est la racine du document de l'application. La racine du document est l'endroit où les pages JSP, les classes et les archives côté client et les ressources Web statiques sont stockées.

(source)

Donc un .la guerre est un .jar, mais il contient des composants d'application web et est disposé selon une structure spécifique. Un .la guerre est conçu pour être déployé sur un serveur d'applications web tel que Tomcat ou Jetty ou un serveur Java EE tel que JBoss ou Glassfish.

33
répondu justkt 2011-05-03 14:34:39

Un fichier .war est une Archive D'applications Web qui s'exécute à l'intérieur d'un serveur d'applications tandis qu'un .jar est une Archive D'applications Java qui exécute une application de bureau sur la machine d'un utilisateur.

10
répondu Justin Niessner 2011-05-03 14:33:08

Un fichier war est un fichier JAR spécial qui est utilisé pour empaqueter une application web afin de faciliter son déploiement sur un serveur d'applications. Le contenu du fichier war doit suivre une structure définie.

9
répondu Vincent Ramdhanie 2011-05-03 14:34:44

.jar et .war sont tous deux des fichiers archivés compressés. Les deux peuvent avoir le méta-INF/manifeste facultatif.Fichier manifeste MF qui contient des informations informatives comme le versionnage, et des attributs pédagogiques comme classpath et main-class pour la JVM qui l'exécutera.

.fichier war-Archive D'Application Web destinée à être exécutée dans un 'conteneur de Servlet' et peut inclure d'autres fichiers jar (dans le répertoire WEB-INF/lib) classes compilées (dans le répertoire WEB-INF / classes (servlet y va aussi)).fichiers jsp images, fichiers, etc. Tout le contenu de guerre qui est là afin de créer un module autonome.

7
répondu Haim Sulam 2011-05-03 16:27:04

EAR est une archive D'Application D'entreprise et peut contenir des fichiers JAR ejb, des fichiers WAR et des fichiers RAR (connector). Ils peuvent également contenir des bibliothèques tierces - mais vous devez savoir comment manipuler les installations D'extension Java (par exemple MANIFEST.MF Class-Path directive) pour que cela fonctionne bien.

WAR est une archive D'Application Web et contient des fichiers JSPs," normaux " HTTP servis (HTML, images, etc.), servlets, bibliothèques de balises.

JAR l'archive D'Application Java "normale" est-elle, mais dans ce contexte, il contient généralement des EJB au lieu de bibliothèques de code ou d'applications exécutables (par exemple à partir d'un conteneur d'application).

7
répondu madhu 2015-11-03 19:15:20

War et jar sont des archives pour les fichiers java. la guerre est archive web et ils sont en cours d'exécution sur le serveur web. jar est une archive java.

4
répondu n_yanev 2011-05-03 14:32:43

Fondamentalement les deux archives compressées. war est utilisé pour une application web avec une structure de répertoire spécifique.

4
répondu fmucar 2011-05-03 14:33:38

Fichiers Jar (fichiers avec un .extension jar) sont destinés à contenir des bibliothèques génériques de classes Java, de ressources, de fichiers auxiliaires,etc.Alors que les fichiers War (fichiers avec un .extension war) sont destinés à contenir des applications Web complètes. Dans ce contexte, une application Web est définie comme un seul groupe de fichiers, classes, ressources, .fichiers jar qui peuvent être empaquetés et accessibles en tant que contexte de servlet unique.

4
répondu Debaprasad 2014-02-24 11:37:59

Guerre -

Distribuez des applications Web basées sur Java. Une guerre a le même fichier structure d'un fichier JAR, qui est un seul fichier compressé contient plusieurs fichiers empaquetés à l'intérieur.

Jar -

Le .les fichiers jar contiennent des bibliothèques, des ressources et des fichiers d'accessoires comme les fichiers de propriété.

Les fichiers WAR sont utilisés pour combiner JSP, servlets, fichiers de classe Java, XML fichiers, bibliothèques javascript, bibliothèques JAR, pages Web statiques et tout d'autres ressources nécessaires à l'exécution de l'application.

0
répondu Akitha_MJ 2018-09-01 07:28:59