108 votes

Comment lire le fichier MANIFEST.MF à partir de JAR à l'aide de Bash

J'ai besoin de lire le fichier manifeste MANIFEST.MF maven de "some.jar" à l'aide de bash

180voto

miku Points 63392
$ unzip -q -c myarchive.jar META-INF/MANIFEST.MF
  • -q supprimer documenté à partir de la décompression programme
  • -c extrait de stdout

Exemple:

$ unzip -q -c commons-lang-2.4.jar META-INF/MANIFEST.MF

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 1.5.0_13-119 (Apple Inc.)
Package: org.apache.commons.lang
Extension-Name: commons-lang
Specification-Version: 2.4
Specification-Vendor: Apache Software Foundation
Specification-Title: Commons Lang
Implementation-Version: 2.4
Implementation-Vendor: Apache Software Foundation
Implementation-Title: Commons Lang
Implementation-Vendor-Id: org.apache
X-Compile-Source-JDK: 1.3
X-Compile-Target-JDK: 1.2

Alternativement, vous pouvez utiliser -p au lieu de -q -c.

-p extraire des fichiers à la pipe (stdout). Rien de mais le fichier de données est envoyé vers la sortie standard, et les fichiers sont toujours extraits en format binaire, tout comme ils sont stockés (pas de conversions).

23voto

Bobby Powers Points 1210

utiliser unzip:

$ unzip -q -c $JARFILE_PATH META-INF/MANIFEST.MF

que va tranquillement (-q) lire le chemin META-INF/MANIFEST.MF de la jarfiles (qui est compressé en utilisant le format zip) sur la sortie standard (-c). Vous pouvez rediriger la sortie vers une autre commande pour répondre à des questions comme " quelle est la classe principale pour ce pot:

$ unzip -q -c $JARFILE_PATH META-INF/MANIFEST.MF | grep 'Main-Class' | cut -d ':' -f 2

(cela supprime toutes les lignes qui ne contiennent pas la chaîne de caractères Main-Class, puis divise la ligne en :, ne gardant que le deuxième champ, le nom de la classe). Bien sûr, soit définir $JARFILE_PATH de façon appropriée ou de remplacer $JARFILE_PATH avec le chemin d'accès à un jarfiles qui vous intéresse.

4voto

Zsolt Botykai Points 20615

En fonction de votre distribution, installez le package unzip . Puis simplement émettre

 unzip -p YOUR_FILE.jar META-INF/MANIFEST.MF
 

Cela videra le contenu dans STDOUT.

HTH

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X