¿Cuál es la diferencia entre un archivo .jar
y .war
? ¿Es solo la extensión de archivo o hay algo más?Java war vs. jar: ¿cuál es la diferencia?
Respuesta
De Java Tips: Difference between ear jar and war files:
descripcionesEstos archivos son simplemente archivos comprimidos utilizando la herramienta jar de Java. Estos archivos son creados para diferentes propósitos. Aquí es la descripción de estos archivos:
archivos .jar: Los archivos .jar contienen bibliotecas, recursos y accesorios archivos de como archivos de propiedades.
.war: El archivo de la guerra contiene la aplicación web que puede ser desplegado en cualquier servlet/JSP contenedor. El archivo .war contiene jsp, html, javascript y otros archivos necesarios para el desarrollo de aplicaciones web .
Oficial Sun/Oracle:
artículos de Wikipedia:
war y jar son archivos para archivos java. war es un archivo web y se está ejecutando en un servidor web. jar es un archivo java.
Un archivo de la aplicación web que se ejecuta dentro de un servidor de aplicaciones mientras que .jar
es Java Application Archive que ejecuta una aplicación de escritorio en la máquina de un usuario.
La segunda declaración no es necesariamente cierta. Un jar también puede iniciar un servidor web incorporado, p. con Spring Boot. – whirlwin
incluso esa afirmación no es del todo cierta. Un jar también puede ser una biblioteca de código para ser utilizado por otras aplicaciones. En otras palabras, puede que ni siquiera contenga una clase principal para correr. –
@KevinWelker estuvo de acuerdo. Incluso en 2011 (cuando se escribió esta publicación), un jar todavía podría representar una biblioteca. Sin embargo, la bota de primavera no estaba disponible, así que puedo ver el hecho de que puedes insertar un servidor web en un contenedor como se mencionó en el torbellino. –
A .war
file tiene una estructura específica en cuanto a dónde estarán determinados archivos. Aparte de eso, sí, es solo un .jar
.
básicamente dos archivos comprimidos. war se usa para aplicaciones web con una estructura de directorio específica.
Para agregar componentes de Internet para una aplicación J2EE en un paquete llamado un archivo de aplicación web (WAR), que es un JAR similar al paquete utilizado para las bibliotecas de clases de Java. A WAR generalmente contiene otros recursos además de componentes web, incluidos:
- Clases de utilidad del lado del servidor (beans de base de datos, carritos de la compra, etc.).
- recursos web estáticas (HTML, imágenes y archivos de sonido, etc.)
- clases del lado del cliente (applets y clases de utilidad)
Una guerra tiene una estructura jerárquica de directorios 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 archivos del lado del cliente y los recursos web estáticos.
(source)
Así que un .war es un .jar, pero contiene componentes de aplicaciones web y se presenta de acuerdo a una estructura específica. A .war está diseñado para implementarse en un servidor de aplicaciones web como Tomcat o Jetty o un servidor Java EE como JBoss o Glassfish.
¿Significa esto que si está compilando una aplicación de servidor que solo usa sockets y no tiene ninguna UI, no hay necesidad de empaquetarla como un archivo war? –
En realidad, ahora estoy leyendo un poco más. No necesito Tomcat, solo puedo exportar el jar al servidor y ejecutarlo directamente desde allí. –
Un archivo war es un archivo jar especial que se utiliza para empaquetar una aplicación web para facilitar la implementación en un servidor de aplicaciones. El contenido del archivo war debe seguir una estructura definida.
.jar y .war son ambos archivos comprimidos comprimidos. Ambos pueden tener el archivo de manifiesto META-INF/MANIFEST.MF opcional que contiene información informativa como control de versiones y atributos de instrucción como classpath y main-class para la JVM que la ejecutará.
.war file - Archivo de aplicaciones web destinado a ejecutarse dentro de un 'Servlet Container' 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 está allí para crear un módulo autónomo.
La principal diferencia entre un JAR y un WAR es que un JAR no es realmente un formato de propósito único, mientras que un WAR es. Con un archivo JAR, puede empaquetar muchas cosas diferentes. Por lo general, usted empaqueta las clases de Java, pero puede poner casi cualquier cosa en un archivo JAR, y puede crear archivos JAR que tengan los archivos y formatos de directorios que desee. Por ejemplo, Oracle (al menos en 8.1.x) usa realmente archivos JAR para distribuir el software de Oracle en los CD de instalación, e IBM los utiliza para distribuir una versión instalable de la documentación para WebSphere. Técnicamente, puede colocar páginas JSP, páginas HTML, clases de servlet, etc. en un JAR, pero generalmente no lo hace; utiliza un WAR.
Los archivos WAR son archivos JAR con un formato específico. Este formato se define en la especificación del servlet (que puede consultar en el sitio java.sun.com). Básicamente, 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 archivo WEB-INF/web.xml utilizado para describir la aplicación, un directorio WEB-INF/lib para archivos JAR utilizados por la aplicación, y un directorio WEB-INF/classes para archivos de clase que no se distribuyen en un JAR. También pondría las páginas (JSP y HTML) en la GUERRA. Luego, puede distribuir su aplicación como un solo archivo, en lugar de como una colección de imágenes, páginas HTML y clases de Java.
Pregunta rápida, estoy construyendo un pequeño servidor usando NIO, pero se trata de conexiones basadas en sockets con un protocolo personalizado, sin HTTP, sin UI, sin HTML, CSS, Javascript. Se conecta a una base de datos en el servidor para guardar el contenido recibido a través de las conexiones de socket. ¿Importa si está empaquetado como una jarra o una guerra? ¿Hay beneficios de rendimiento de construir una guerra si la estoy usando en un servidor tomcat incluso si se trata de conexiones de socket sin procesar? –
Los archivos jar (los archivos con una extensión .jar) están destinados a contener bibliotecas genéricas de clases de Java, recursos, archivos auxiliares, etc.Mientras que los archivos War (archivos con una extensión .war) están destinados a contener aplicaciones web completas. En este contexto, una aplicación web se define como un único grupo de archivos, clases, recursos, archivos .jar que se pueden empaquetar y acceder como un contexto de servlet.
EAR
es un archivo de aplicación empresarial 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 los recursos de extensión de Java (por ejemplo, la directiva MANIFEST.MF Class-Path) para que funcione bien.
WAR
es un archivo de aplicaciones web y contiene JSP, archivos servidos HTTP "normales" (HTML, imágenes, etc.), servlets, bibliotecas de etiquetas.
JAR
es el archivo de la aplicación Java "normal", pero en este contexto generalmente contiene EJB en lugar de bibliotecas de códigos o aplicaciones ejecutables (por ejemplo, desde fuera de un contenedor de aplicaciones).
"código del remitente hereuch"? – Noumenon
- 1. ¿Cómo extraer los archivos .war en Java? ZIP vs JAR
- 2. ¿Cuál es la diferencia entre() vs [] vs {}?
- 3. Paquete Java Vs Carpeta-Estructura? cuál es la diferencia
- 4. .war vs .ear archivo
- 5. EQU vs DC.B. ¿Cuál es la diferencia?
- 6. SET vs. SELECT - ¿Cuál es la diferencia?
- 7. JIT vs NGen: ¿cuál es la diferencia?
- 8. CATALINA_OPTS vs JAVA_OPTS - ¿Cuál es la diferencia?
- 9. Char.IsDigit() vs Char.IsNumber(), ¿cuál es la diferencia?
- 10. node.js vs. meteor.js ¿cuál es la diferencia?
- 11. Buscar archivos Java jar (ear, war, ...) para la clase/método
- 12. ¿Cuál es la diferencia entre los archivos apklib y jar?
- 13. ¿Cuál es la diferencia entre "Agregar JAR" y "Agregar JAR externos" en Eclipse?
- 14. Cuál es la diferencia entre colorWithSRGBRed vs colorWithDeviceRed vs colorWithCalibratedRed
- 15. EAR vs EJB + WAR separado
- 16. ¿Qué es el uso de MANIFEST.MF en WAR/JAR/EAR?
- 17. Diferencia entre clase Java y jar
- 18. ¿Cuál es la diferencia entre interfaz y @interface en java?
- 19. ojdbc14.jar vs. ojdbc6.jar
- 20. Cuál es la diferencia entre String (value) vs value.toString()
- 21. ¿Cuál es la diferencia entre gets.chomp() vs. STDIN.gets.chomp()?
- 22. ¿Cuál es la diferencia entre X = X ++; vs X ++ ;?
- 23. ¿Cuál es la diferencia entre Cassandra vs Oracle Coherence?
- 24. VSTO vs. Ensambles primarios de interoperabilidad, ¿cuál es la diferencia?
- 25. ¿Cuál es la diferencia entre "git reset" vs "git rebase"?
- 26. ¿Cuál es la diferencia entre Selenium's Remote Control vs WebDriver?
- 27. Bases de datos relacionales vs. dimensionales, ¿cuál es la diferencia?
- 28. Linq. Cualquier VS. Exists - ¿Cuál es la diferencia?
- 29. GWT VS Google Closure, ¿cuál es la diferencia?
- 30. Datastore Category vs. String: ¿cuál es la diferencia?
Estoy teniendo una duda como jsp y archivos adicionales de la aplicación web por qué no pueden estar en el archivo jar. –
@ EmmanuelAngelo.R Pueden: un archivo jar es solo un archivo zip. Si va a hacer algo útil es otra cuestión, que depende del código que desea utilizar el archivo jar. Como un ejemplo interesante, el servidor de integración continua de Jenkins se distribuye como un archivo WAR, que se puede ejecutar con "java -jar". Consulte https://wiki.jenkins-ci.org/display/JENKINS/Starting+and+Accessing+Jenkins para obtener más detalles. –