2010-07-13 15 views

risposta

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 

L'ho appena fatto e non ho eliminato il file che ho estratto dalla guerra. Per favore verifica che ...;)

+0

bene che sarebbe troppo semplice: -) Lasciatemi riformulare la mia domanda con un esempio $ ls myWarFile.war $ jar -tvf myWarFile.war | grep myJarFile WEB-INF/myJarFile.jar domanda è, come faccio a vedere il contenuto di myJarFile.jar "senza prima estrarre il contenuto di myWarFile.war" .. c'è una scorciatoia? – sunny8107

+0

l'opzione 't' significa solo mostrare il contenuto, in realtà non estrarre la guerra. dalla pagina man: t Elenca il sommario da jarfile (se f è specificato) o standard input (se f e jarfile sono omessi). Se vengono specificati i file di input, vengono elencati solo i file e le directory specificati. Altro- saggio, tutti i file e le directory sono elencati. – hvgotcodes

+0

aah vedo. ho sempre letto la domanda sbagliata. Hai un file jar all'interno di una guerra e vuoi vedere il barattolo. In tal caso, estrarre solo il jar dalla guerra, quindi elencare il contenuto, quindi eliminare il file estratto ... modificato la mia risposta sopra con tutti i passaggi ... – hvgotcodes

0

Penso che il tuo scatto migliore sia indovinare, ma non è molto affidabile.

Un archivio zippato (un file .war non è nient'altro) contiene una tabella di contenuti e file compressi. Non c'è modo di accedere ai contenuti di nessuno dei file compressi senza prima estrarli.

1

Se apri la guerra in 7-zip puoi aprire anche i barattoli annidati.

Io uso sempre questo script quando voglio cercare o grep tutte le classi e altri file sul percorso di classe in una guerra (lo fa estrarre il file di guerra però)

#!/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 
Problemi correlati