¿Cómo extraer archivos .war en java? ZIP frente a JAR

3 minutos de lectura

avatar de usuario de user972276
usuario972276

Tengo un programa web donde quiero que el usuario pueda importar un .war archivo y puedo extraer ciertos archivos del .war expediente. He encontrado dos bibliotecas de clases: java.util.zip.* y java.util.jar.*. Por lo que entiendo, un archivo WAR es un archivo JAR especial que es un archivo ZIP especial. Entonces, ¿sería mejor usar java.util.jar? Si los archivos ZIP y JAR son prácticamente iguales, ¿por qué se necesitan dos bibliotecas diferentes?

  • ¿Qué harás con los archivos dentro del archivo de guerra?

    – Thorbjorn Ravn Andersen

    24/10/2011 a las 22:47

avatar de usuario de iltaf khalid
iltaf khalid

El archivo WAR es solo un archivo JAR, para extraerlo, simplemente emita el siguiente comando jar:

jar -xvf yourWARfileName.war

Si no se encuentra el comando jar, lo que a veces sucede en el símbolo del sistema de Windows, especifique la ruta completa, es decir, en mi caso lo es,

 c:\java\jdk-1.7.0\bin\jar -xvf my-file.war

  • Utilicé este comando y extraje el archivo .war … pero todo esto va a la carpeta bin … ¿puedes pegar el comando para elegir la ubicación de extracción?

    – Gnanam R.

    7 de enero de 2014 a las 8:27

  • stackoverflow.com/questions/15830952/…

    – iltaf khalid

    9 de enero de 2014 a las 10:48

  • En Java, preguntó el OP.

    – David Newton

    04/08/2015 a las 17:44

Si miras el JarFile API verás que es una subclase de la Archivo zip clase.

Las clases específicas de jar en su mayoría solo agregan funcionalidades específicas de jar, como soporte directo para atributos de archivo de manifiesto, etc.

Es programación orientada a objetos “en acción”; dado que los archivos jar son archivos zip, las clases jar pueden usar la funcionalidad zip y proporcionar una utilidad adicional.

  • Se agradecen los votos negativos en las respuestas correctas y aceptadas.

    – David Newton

    15 de junio de 2016 a las 11:20

Avatar de usuario de Mehdi
Mehdi

Solo renombra el .war dentro .jar y descomprímalo usando Winrar (o cualquier otro administrador de archivos).

Avatar de usuario de Karan
Karan

Si usa Linux o Ubuntu, puede extraer datos directamente de .war expediente.

A war el archivo es solo un jar archivo, para extraerlo, simplemente emita el siguiente comando usando el jar programa:

jar -xvf yourWARfileName.war

Como dijiste, un frasco es un archivo zip (no un tipo especial, sino simplemente un zip antiguo), por lo que cualquiera de las bibliotecas podría funcionar. El razonamiento es que la persona promedio, al ver una extensión *.zip, tiende a descomprimirla. Dado que el servidor de aplicaciones quiere que se descomprima, un simple cambio de nombre evita que la gente lo descomprima simplemente por costumbre. Del mismo modo, el archivo *.war también debe permanecer sin comprimir.

java.util.jar básicamente solo agrega funcionalidad adicional a java.util.zip con muy poca sobrecarga adicional. Deje que java.util.jar sea un ayudante en la publicación, etc… y utilícelo.

avatar de usuario de r0ast3d
r0ast3d

La clase/paquete Jar es para mecanismos de archivos Jar específicos en los que hay un manifiesto que utilizan los archivos Jar en algunos casos.

La clase/paquete de archivo Zip maneja cualquier archivo comprimido que incluya archivos Jar, que es un tipo de archivo comprimido.

Las clases Jar amplían así las clases de paquetes Zip.

Avatar de usuario de M. Dhaouadi
M. Dhaouadi

Puede usar un giro y simplemente implementar la aplicación en el servidor tomcat: simplemente copie / pegue en la carpeta webapps. Una vez que se inicia Tomcat, creará una carpeta con el nombre de la aplicación y podrá acceder a los contenidos directamente

¿Ha sido útil esta solución?