Comment lire un fichier .war?

17

J'essaie de visualiser le contenu d'un fichier .war. J'ai d'abord défini ses autorisations avec chmod 777alors lorsque j'essaie d'y accéder en utilisant:

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

Il donne cd: /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/: Not a directoryet je ne peux pas aller plus loin.

Quelqu'un peut-il m'aider dans ce problème?

user1660325
la source
5
Ne pas utiliser chmod 777sur un fichier compressé. Vous n'avez pas besoin d'un peu d'exécution pour le lire. Un coffre 644- fort ou 640est recommandé.
Braiam
Voir les documents Java officiels: docs.oracle.com/javase/tutorial/deployment/jar/view.html
slm
Est-ce /usr/local/standalone/deployments/Sample.warun répertoire ou un fichier?
jlliagre

Réponses:

21

Les fichiers .war sont compressés. Vous pouvez extraire les informations à l'aide de l'une des commandes suivantes:

jar -xvf Sample.war
unzip Sample.war

Vous devriez alors pouvoir exécuter cd /usr/local/standalone/deployments/Sample.war/WEB-INF/classes/

JZeolla
la source
3
jar -xvf *warne fonctionnera pas s'il y a plus d'un fichier war dans le répertoire courant. tar -xvfzne fonctionnera pas du tout, vous confondez les fichiers gzippés et zippés.
jlliagre
C'est vrai, je ne voulais pas en déduire que cela fonctionnerait avec plusieurs guerres, juste que vous pourriez utiliser cette commande mot pour mot pour n'importe quelle guerre. Je l'ai changé
JZeolla
1
Je pense qu'il vaut mieux utiliser jar -tvfet non la jar -xvfmanière proposée . Les fichiers ne sont donc pas extraits (et contaminent votre fichier.), Mais simplement répertoriés.
Dror Cohen
8

.war les fichiers sont des archives zippées.

Vous pouvez lister ce qu'ils contiennent avec

jar tvf Sample.war

ou

zipinfo Sample.war

Si vous souhaitez voir le contenu des fichiers stockés dans une archive, vous devez d'abord l'extraire quelque part:

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

Si vous ne souhaitez pas extraire le fichier, vous pouvez utiliser vim filename.warpour lire le contenu du fichier. Vous pouvez lire des sous-répertoires de fichiers en les sélectionnant et en appuyant sur Entrée.

Martin Agfjord
la source
Pour que cela fonctionne, vous devez unzipinstaller le package .
Thaoden
1

Vous devez d'abord extraire le fichier de guerre jar xvf Sample.war. Ensuite, vous pouvez vous connecter au fichier de guerre.

Manula Waidyanatha
la source
0

En plus de les extraire avec jar ou décompresser, vous pouvez également utiliser Midnight Commander (mc) et accéder à ces fichiers et appuyer sur Entrée comme s'ils étaient des répertoires.

Si cela ne fonctionne pas immédiatement, votre version de mc n'est pas configurée pour connaître le suffixe .war, mais vous pouvez toujours utiliser cette fonctionnalité en tapant soit cd Sample.war # uzip (ancien mc) ou cd Sample.war / uzip: // (mc dans Debian unstable) et en appuyant sur Entrée. Comme avantage supplémentaire, en appuyant sur Échap puis sur Entrée (dans certains terminaux, également Alt-Entrée, mais ce n'est pas portable, ne dépendez donc pas de celui-ci) insère le nom de fichier actuel dans la ligne de commande, mais vous devrez également appuyer sur Retour arrière car il ajoute un espace, et le #uzip ou / uzip: // doit suivre immédiatement le nom du fichier.

Il s'agit du mc VFS (système de fichiers virtuel).

Je ne répéterai pas les réponses de décompression / fastjar / jar ici, mais elles sont également correctes.

mirabilos
la source
0

Si les commandes unix ne fonctionnent pas, ftp le fichier sur la machine locale.

.jarou .warou .earn'importe quel fichier d'archive peut être ouvert en 7-Zip en suivant les étapes ci-dessous -

  1. Faites un clic droit sur le fichier d'archive
  2. 7-Zip
  3. Archives ouvertes

Vous devriez pouvoir voir tout le contenu du fichier d'archive. Parcourez maintenant le dossier / fichier, puis cliquez avec le bouton droit -> modifier le fichier -> enregistrer le fichier.

Arunchunaivendan
la source