2010-07-13 27 views

Respuesta

6
jar xvf thewar.war /path/to/jar/inside/war #extract the file...  
jar tvf /path/to/jar/indide/war.jar # read the extracted jar 
rm /path/to/jar/inside/war # remove it 

que acabo de hacer esto y que no lo ha suprimido el archivo que he extraído de la guerra. Por favor, verifique eso ...;)

+0

así que sería demasiado simple: -) Permítanme reformular mi pregunta con un ejemplo $ ls myWarFile.war $ jar -tvf myWarFile.war | grep myJarFile WEB-INF/myJarFile.jar pregunta es, ¿cómo veo los contenidos de myJarFile.jar "sin primero extraer los contenidos de myWarFile.war" ... hay un atajo? – sunny8107

+0

la opción 't' significa simplemente mostrar los contenidos, en realidad no extrae la guerra. desde la página man: t Enumera la tabla de contenido de jarfile (si se especifica f) o la entrada estándar (si f y jarfile se omiten). Si se especifican los archivos de entrada, solo se enumeran los archivos y directorios especificados. Otro- sabio, todos los archivos y directorios se enumeran. – hvgotcodes

+0

aah veo. hombre siempre leo la pregunta mal. Tienes un archivo jar dentro de una guerra y quieres ver el contenedor. En ese caso, extraiga solo el contenedor de la guerra, luego liste el contenido y luego elimine el archivo extraído ... edité mi respuesta anterior con todos los pasos ... – hvgotcodes

0

Creo que su mejor opción es adivinar, pero eso no es muy confiable.

Un archivo comprimido (una .war no es nada más) contiene una tabla de contenido y archivos empaquetados. No hay forma de acceder al contenido de ninguno de los archivos empaquetados sin extraerlos primero.

1

Si abre la guerra en 7-zip también puede abrir jarrones anidados.

siempre uso este script cuando quiero buscar o grep todas las clases y otros archivos en la ruta de clase en una guerra (lo hace de extraer el archivo de la guerra, aunque)

#!/bin/bash 
# 
# Unzips all the libs in a war 
set -o errexit 
set -o nounset 
mkdir -p contents 
cd contents 
unzip $1 
mkdir -p jars 
cd jars 
for jar in ../WEB-INF/lib/*.jar; do 
    basejar=$(basename $jar) 
    mkdir -p "$basejar" 
    unzip -o "$jar" -d "$basejar" 
done 
Cuestiones relacionadas