Diferencia entre jar y guerra en Java


¿Cuál es la diferencia entre un archivo .jar y un archivo .war? ¿Es solo la extensión de archivo o hay algo más?

 351
Author: codeforester, 2011-05-03

12 answers

Desde Java Tips: Diferencia entre el tarro del oído y los archivos de guerra:

Estos archivos son simplemente archivos comprimidos usando la herramienta java jar. Estos archivos son creado para diferentes propósitos. Aqui es la descripción de estos archivos:

  • .archivos jar: El .los archivos jar contienen bibliotecas, recursos y accessories files como archivos de propiedades.

  • .archivos war: El archivo war contiene web aplicación que puede ser implementado en cualquier servlet / jsp contenedor. El .war file contiene jsp, html, javascript y otros archivos necesario para el desarrollo de la web aplicación.


Descripciones oficiales de Sun / Oracle:


Wikipedia artículos:

 304
Author: aioobe,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-08-03 09:15:58

A .war file tiene una estructura específica en términos de dónde estarán ciertos archivos. Aparte de eso, sí, es solo un .jar.

 60
Author: T.J. Crowder,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 14:33:13

La principal diferencia entre un FRASCO y una GUERRA es que un FRASCO no es realmente un formato de propósito único, mientras que una GUERRA lo es. Con un archivo JAR, puede empaquetar muchas cosas diferentes. Por lo general, se empaquetan clases Java, pero se puede poner casi cualquier cosa en un archivo JAR, y se pueden crear JARs que tengan los archivos y formatos de directorio que desee. Por ejemplo, Oracle (al menos en 8.1.x) en realidad utiliza archivos JAR para distribuir el software de Oracle en los CD de instalación, e IBM los utiliza para distribuya una versión instalable de la documentación para WebSphere. Técnicamente puedes poner páginas JSP, páginas HTML, clases servlet, etc. en un FRASCO, pero generalmente no use usas una GUERRA.

Los archivos WAR son archivos JAR con un formato específico. Este formato está definido en la especificación de servlet (que puede ver en el java.sun.com sitio). Esencialmente, el archivo WAR es un formato estándar para aplicaciones web que tiene directorios específicos y archivos específicos. Esto incluye un directorio WEB-INF, un WEB-INF / web.archivo xml utilizado para describir la aplicación, un directorio WEB-INF / lib para los archivos JAR utilizados por la aplicación y un directorio WEB-INF/classes para los archivos de clases que no se distribuyen en un JAR. Usted pondría las páginas (JSPs y HTML) en la GUERRA también. Luego, puede distribuir su aplicación como un archivo, en lugar de como una colección de imágenes, páginas HTML y clases Java.

 47
Author: Selami Ozlu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-06 14:20:02

Se agregan componentes web a una aplicación J2EE en un paquete llamado archivo de aplicaciones web (WAR), que es un JAR similar al paquete utilizado para las bibliotecas de clases Java. Una GUERRA generalmente contiene otros recursos además de componentes web, incluyendo:

  • Clases de utilidad del lado del servidor (frijoles de base de datos, carritos de compras, etc.).
  • Recursos web estáticos (HTML, archivos de imagen y sonido, etc.)
  • Clases del lado del cliente (applets y clases de utilidad)

Una GUERRA tiene una estructura jerárquica específica de directorios. El directorio de nivel superior de una WAR es la raíz del documento de la aplicación. La raíz del documento es donde se almacenan las páginas JSP, las clases del lado del cliente y los archivos, y los recursos web estáticos.

(fuente)

So a .la guerra es una .jar, pero contiene componentes de aplicaciones web y se presenta de acuerdo con una estructura específica. Un .war está diseñado para ser implementado en un servidor de aplicaciones web como Tomcat o Jetty o un servidor Java EE como JBoss o Glassfish.

 33
Author: justkt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 14:34:39

Un archivo .war es un Archivo de Aplicación Web que se ejecuta dentro de un servidor de aplicaciones, mientras que un .jar es un Archivo de aplicación Java que ejecuta una aplicación de escritorio en la máquina de un usuario.

 10
Author: Justin Niessner,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 14:33:08

Un archivo war es un archivo jar especial que se utiliza para empaquetar una aplicación web para facilitar su implementación en un servidor de aplicaciones. El contenido del archivo war debe seguir una estructura definida.

 9
Author: Vincent Ramdhanie,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 14:34:44

.jar y .war son ambos archivos comprimidos. Ambos pueden tener el META-INF/MANIFEST opcional.Archivo de manifiesto MF que contiene información informativa como el control de versiones, y atributos de instrucción como classpath y main-class para la JVM que lo ejecutará.

.war file-Archivo de aplicación Web destinado a ser ejecutado dentro de un 'Contenedor de Servlet' y puede incluir otros archivos jar (en el directorio WEB-INF/lib) clases compiladas (en WEB-INF/classes (servlet va allí también)) .archivos jsp imágenes, archivos, etc. Todo el contenido de GUERRA que está allí con el fin de crear un módulo autónomo.

 7
Author: Haim Sulam,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 16:27:04

EAR es un archivo de aplicaciones empresariales y puede contener archivos JAR ejb, archivos WAR y archivos RAR (conector). También pueden contener bibliotecas de terceros, pero debe saber cómo manipular las instalaciones de extensión de Java (por ejemplo, MANIFEST.MF Class-Path directive) para hacer que funcione bien.

WAR es un archivo de aplicaciones Web y contiene JSPs, archivos HTTP" normales " (HTML, imágenes, etc.).), servlets, bibliotecas de etiquetas.

JAR es el archivo de aplicaciones Java" normal", pero en este contexto generalmente contiene EJBs en lugar de bibliotecas de código o aplicaciones ejecutables (por ejemplo, desde fuera de un contenedor de aplicaciones).

 7
Author: madhu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-03 19:15:20

War y jar son archivos para archivos java. la guerra es archivo web y se están ejecutando en el servidor web. jar es un archivo java.

 4
Author: n_yanev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 14:32:43

Básicamente ambos archivos comprimidos. war se utiliza para aplicaciones web con una estructura de directorios específica.

 4
Author: fmucar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-05-03 14:33:38

Archivos Jar (archivos con a.extensión jar) están destinados a contener bibliotecas genéricas de clases Java, recursos, archivos auxiliares, etc.Mientras que los archivos War (archivos con a .war extension) están destinados a contener aplicaciones Web completas. En este contexto, una aplicación web se define como un solo grupo de archivos, clases, recursos,.archivos jar que se pueden empaquetar y acceder como un contexto de servlet.

 4
Author: Debaprasad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-24 11:37:59

Guerra -

Distribuya aplicaciones web basadas en Java. Una GUERRA tiene el mismo archivo estructura como un archivo JAR, que es un único archivo comprimido que contiene varios archivos incluidos dentro de él.

Jar -

El.los archivos jar contienen archivos de bibliotecas, recursos y accesorios como archivos de propiedades.

Los archivos WAR se utilizan para combinar JSPs, servlets, archivos de clase Java, XML archivos, bibliotecas javascript, bibliotecas JAR, páginas web estáticas y cualquier otros recursos necesarios para ejecutar la aplicación.

 0
Author: Akitha_MJ,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-01 07:28:59