¿Cómo leer un archivo .war?

17

Estoy tratando de ver el contenido de un archivo .war. Primero configuré sus permisos y chmod 777luego cuando trato de acceder usando:

cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

Está dando cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directoryy no puedo seguir adelante.

¿Alguien puede ayudarme en este tema?

usuario1660325
fuente
55
No lo use chmod 777en un archivo comprimido. No necesita bit de ejecución para leerlo. Una caja fuerte 644o 640se recomienda.
Braiam
Consulte los documentos oficiales de Java: docs.oracle.com/javase/tutorial/deployment/jar/view.html
slm
¿Es /usr/local/standalone/deployments/Sample.warun directorio o un archivo?
jlliagre

Respuestas:

21

Los archivos .war están empaquetados. Puede extraer la información utilizando cualquiera de los siguientes comandos:

jar -xvf Sample.war
unzip Sample.war

Entonces deberías poder correr cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

JZeolla
fuente
3
jar -xvf *warno funcionará si hay más de un archivo war en el directorio actual. tar -xvfzno funcionará en absoluto, estás confundiendo archivos comprimidos y comprimidos.
jlliagre
Esto es cierto, no quise inferir que funcionaría con múltiples guerras, solo que podría usar ese comando literalmente para cualquier guerra. Lo he cambiado
JZeolla
1
Creo que es mejor usar jar -tvfy no la jar -xvfforma propuesta . Por lo tanto, los archivos no se extraen (y contaminan su.) Sino que se enumeran.
Dror Cohen
8

.war Los archivos son archivos comprimidos.

Puede enumerar lo que contienen con

jar tvf Sample.war

o

zipinfo Sample.war

Si desea ver el contenido de los archivos almacenados en un archivo, primero debe extraerlo en algún lugar:

mkdir /tmp/foo
cd /tmp/foo
unzip /usr/local/standalone/deployments/Sample.war
ls -l WEB-INF/classes/
jlliagre
fuente
4

Si no desea extraer el archivo, puede usarlo vim filename.warpara leer el contenido del archivo. Puede leer subdirectorios de archivos seleccionándolos y presionando enter.

Martin Agfjord
fuente
Para que esto funcione, necesita el paquete unzipinstalado.
Thaoden
1

Primero tienes que extraer el archivo war jar xvf Sample.war. Entonces puedes cd en el archivo de guerra.

Manula Waidyanatha
fuente
0

Además de extraerlos con jar o descomprimir, también puede usar Midnight Commander (mc) y navegar a estos archivos y presionar Enter como si fueran directorios.

Si esto no funciona de inmediato, su sabor de mc no está configurado para conocer el sufijo .war, pero aún puede usar esta función escribiendo cd Sample.war # uzip (mc antiguo) o cd Sample.war / uzip: // (mc en Debian inestable) y presionando Enter. Como beneficio adicional, presionar Escape y luego Enter (en algunas terminales, también Alt-Enter pero esto no es portátil, así que no dependa de él) inserta el nombre de archivo actual en la línea de comando, pero también tendrá que presionar Retroceso porque agrega un espacio, y #uzip o / uzip: // necesita seguir inmediatamente el nombre del archivo.

Esto se conoce como mc VFS (sistema de archivos virtual).

No repetiré las respuestas descomprimir / fastjar / jar aquí, pero también son correctas.

mirabilos
fuente
0

Si los comandos de Unix no funcionan, envíe el archivo a la máquina local.

.jaro .waro .earcualquier fichero de archivo se puede abrir en 7-Zip, siguiendo los pasos a continuación -

  1. Haga clic derecho en el archivo de almacenamiento
  2. 7-Zip
  3. Archivo abierto

Debería poder ver todos los contenidos del archivo comprimido. Ahora navegue a través de la carpeta / archivo y luego haga clic derecho -> edite el archivo -> guarde el archivo.

Arunchunaivendan
fuente