Diferencia entre jar y war en Java


462

¿Cuál es la diferencia entre ay .jarun .wararchivo?
¿Es solo la extensión del archivo o hay algo más?

Respuestas:


388

De Java Tips: Diferencia entre ear jar y war files :

Estos archivos son simplemente archivos comprimidos con la herramienta jar de Java. Estos archivos se crean para diferentes propósitos. Aquí está la descripción de estos archivos:

  • Archivos .jar: los archivos .jar contienen bibliotecas, recursos y archivos de accesorios como archivos de propiedades.

  • Archivos .war: el archivo war contiene la aplicación web que se puede implementar en cualquier contenedor de servlet / jsp. El archivo .war contiene jsp, html, javascript y otros archivos necesarios para el desarrollo de aplicaciones web.


Descripciones oficiales de Sun / Oracle:


Artículos de Wikipedia:


10
Tengo una duda, ya que el jsp y los archivos de aplicaciones web adicionales no pueden estar en el archivo jar.
Emmanuel Angelo.R

@ EmmanuelAngelo.R Pueden: un archivo jar es solo un archivo zip. Si hará algo útil es otra cuestión, que depende del código que desea utilizar el archivo jar. Como un ejemplo interesante, el servidor Jenkins Continuous Integration se distribuye como un archivo WAR, que se puede ejecutar con "java -jar". Ver wiki.jenkins-ci.org/display/JENKINS/… para más detalles.
Thorbjørn Ravn Andersen

77

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


40

Agrega 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. Un WAR generalmente contiene otros recursos además de componentes web, que incluyen:

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

Un WAR tiene una estructura de directorio jerárquica específica. El directorio de nivel superior de un 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 y los archivos del lado del cliente y los recursos web estáticos.

( fuente )

Por lo tanto, un .war es un .jar, pero contiene componentes de aplicaciones web y se presenta de acuerdo con una estructura específica. Un .war está diseñado para implementarse en un servidor de aplicaciones web como Tomcat o Jetty o en un servidor Java EE como JBoss o Glassfish.


1
Entonces, ¿significa esto que si está creando una aplicación de servidor que solo usa sockets y no tiene ninguna interfaz de usuario, no hay necesidad de empaquetarla como un archivo de guerra?
bot_bot

De hecho, ahora estoy leyendo un poco más. No necesito Tomcat, puedo exportar el jar al servidor y ejecutarlo directamente desde allí.
bot_bot


15

Un .wararchivo es un Archivo de aplicación web que se ejecuta dentro de un servidor de aplicaciones, mientras que un .jarArchivo de aplicación Java ejecuta una aplicación de escritorio en la máquina de un usuario.


14
La segunda afirmación no es necesariamente cierta. Un jar también puede iniciar un servidor web incorporado, por ejemplo, con Spring Boot.
whirlwin

44
incluso esa afirmación no es del todo cierta. Un jar también puede ser simplemente una biblioteca de código para ser utilizado por otras aplicaciones. En otras palabras, puede que ni siquiera contenga una clase principal para ejecutar.
Kevin Welker

@KevinWelker estuvo de acuerdo. Incluso en 2011 (cuando se escribió esta publicación) un frasco podría representar una biblioteca. Sin embargo, el arranque de primavera no existía, por lo que puedo ver pasar por alto el hecho de que puede incrustar un servidor web en un frasco como el torbellino mencionado.
intrepistar_88

@Kevin Welker, no "no del todo", diría "no toda la verdad", ya que Whirlwin acaba de mencionar una excepción, que es totalmente cierto, ¿no?
Alexei Martianov el

12

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.


10

.jar y .war son archivos archivados comprimidos. Ambos pueden tener el archivo de manifiesto opcional META-INF / MANIFEST.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á.

Archivo .war: archivo de aplicación web destinado a ejecutarse dentro de un 'Contenedor de servlet' y puede incluir otros archivos jar (en el directorio WEB-INF / lib) clases compiladas (en WEB-INF / classes (el servlet también va allí)) .jsp archivos de imágenes, archivos, etc. Todo el contenido WAR que existe para crear un módulo autónomo.


5

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


4

war y jar son archivos para archivos java. war es un archivo web y se está ejecutando en un servidor web. jar es java archive.


1

Guerra -

distribuir aplicaciones web basadas en Java. Un WAR tiene la misma estructura de archivos que un archivo JAR, que es un único archivo comprimido que contiene varios archivos agrupados dentro de él.

Tarro

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

Los archivos WAR se usan para combinar JSP, servlets, archivos de clase Java, archivos XML, bibliotecas javascript, bibliotecas JAR, páginas web estáticas y cualquier otro recurso necesario para ejecutar la aplicación.


0

Jar : - jar contiene solo .class war : - war contiene html, js, css y .class también páginas jsp y servlets


0

Los archivos JAR permiten empaquetar múltiples archivos para usarlos como una biblioteca, complemento o cualquier tipo de aplicación. Por otro lado, los archivos WAR solo se usan para aplicaciones web.

JAR se puede crear con cualquier estructura deseada. Por el contrario, WAR tiene una estructura predefinida con directorios WEB-INF y META-INF.

Un archivo JAR permite que Java Runtime Environment (JRE) implemente una aplicación completa, incluidas las clases y los recursos asociados en una sola solicitud. Por otro lado, un archivo WAR permite probar e implementar una aplicación web fácilmente.


0

Una extensión de archivo JAR es .jar y se crea con el comando jar desde el símbolo del sistema (como se ejecuta el comando javac). Generalmente, un archivo JAR contiene recursos relacionados con Java como bibliotecas, clases, etc. El archivo JAR es como un archivo winzip, excepto que los archivos Jar son independientes de la plataforma.

Un archivo WAR es simplemente un archivo JAR pero contiene solo archivos Java relacionados con la Web como Servlets, JSP, HTML.

Para ejecutar un archivo WAR, se requiere un servidor web o un contenedor web, por ejemplo, Tomcat o Weblogic o Websphere. Para ejecutar un archivo JAR, basta con JDK simple.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.