Como ler um arquivo .war?

17

Estou tentando exibir o conteúdo de um arquivo .war. Primeiro, configurei suas permissões chmod 777quando tento acessá-lo 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 directorye não sou capaz de prosseguir.

Alguém pode me ajudar nessa questão?

user1660325
fonte
5
Não use chmod 777em um arquivo compactado. Você não precisa de um bit de execução para lê-lo. Um cofre 644ou 640é recomendado.
Braiam 23/07/2013
Consulte os documentos Java oficiais: docs.oracle.com/javase/tutorial/deployment/jar/view.html
slm
É /usr/local/standalone/deployments/Sample.warum diretório ou um arquivo?
Jlliagre

Respostas:

21

Os arquivos .war estão compactados. Você pode extrair as informações usando um dos seguintes comandos:

jar -xvf Sample.war
unzip Sample.war

Você deve poder executar cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

JZeolla
fonte
3
jar -xvf *warnão funcionará se houver mais de um arquivo war no diretório atual. tar -xvfznão funcionará, você está confundindo arquivos compactados e compactados.
Jlliagre
Isso é verdade, não pretendi deduzir que funcionaria com várias guerras, apenas que você poderia usar esse comando literalmente para qualquer guerra. Eu mudei isso
JZeolla
1
Eu acho que é melhor usar jar -tvfe não da jar -xvfmaneira proposta . Portanto, os arquivos não são extraídos (e contaminam o seu.), Mas apenas listados.
quer
8

.war arquivos são arquivos compactados.

Você pode listar o que eles contêm com

jar tvf Sample.war

ou

zipinfo Sample.war

Se você deseja ver o conteúdo dos arquivos armazenados em um arquivo morto, é necessário extraí-lo primeiro em algum lugar:

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

Se você não deseja extrair o arquivo, pode usar vim filename.warpara ler o conteúdo do arquivo. Você pode ler subdiretórios de arquivos selecionando-os e pressionando enter.

Martin Agfjord
fonte
Para que isso funcione, você precisa do pacote unzipinstalado.
Thaoden
1

Primeiro você precisa extrair o arquivo war jar xvf Sample.war. Então você pode entrar no arquivo de guerra.

Manula Waidyanatha
fonte
0

Além de extraí-los com jar ou descompactar, você também pode usar o Midnight Commander (mc) e navegar para esses arquivos e pressionar Enter neles como se fossem diretórios.

Se isso não funcionar imediatamente, seu sabor de mc não está configurado para conhecer o sufixo .war, mas você ainda pode usar esse recurso digitando cd Sample.war # uzip (mc antigo) ou cd Sample.war / uzip: // (mc no Debian instável) e pressionando Enter. Como um benefício adicional, pressionar Escape e Enter (em alguns terminais, também Alt-Enter, mas este não é portátil, por isso não depende dele) insere o nome do arquivo atual na linha de comando, mas você também precisará pressionar Backspace porque ele adiciona um espaço e o #uzip ou / uzip: // precisa seguir imediatamente o nome do arquivo.

Isso é conhecido como mc VFS (sistema de arquivos virtual).

Não repetirei as respostas descompactar / fastjar / jar aqui, mas elas também estão corretas.

mirabilos
fonte
0

Se os comandos unix não funcionarem, envie o arquivo para a máquina local.

.jarou .warou .earqualquer arquivo pode ser aberto em 7-Zip, seguindo os passos abaixo -

  1. Clique com o botão direito do mouse no arquivo morto
  2. 7-Zip
  3. Arquivo aberto

Você poderá ver todo o conteúdo do arquivo morto. Agora, navegue pela pasta / arquivo e clique com o botão direito do mouse -> editar o arquivo -> salvar o arquivo.

Arunchunaivendan
fonte