Ich muss die MANIFEST.MF-Maven-Manifestdatei aus "some.jar" mit bash lesen
bash
jar
manifest.mf
römisch
quelle
quelle
Antworten:
-q
unterdrückt die ausführliche Ausgabe des Entpackungsprogramms-c
wird zu stdout extrahierenBeispiel:
Alternativ können Sie
-p
anstelle von verwenden-q -c
.quelle
Verwenden Sie
unzip
:-q
Dadurch wird leise ( ) der Pfad META-INF / MANIFEST.MF von der Jarfile (die im Zip-Format komprimiert wird) zu stdout (-c
) gelesen . Sie können die Ausgabe dann an einen anderen Befehl weiterleiten, um Fragen wie "Was ist die Hauptklasse für dieses Glas?" Zu beantworten.(Dadurch werden alle Zeilen entfernt, die die Zeichenfolge nicht enthalten
Main-Class
, und die Zeile wird bei geteilt:
, wobei nur das zweite Feld, der Klassenname, beibehalten wird.) Definieren Sie dies entweder$JARFILE_PATH
entsprechend oder ersetzen Sie es$JARFILE_PATH
durch den Pfad zu einem Jarfile, an dem Sie interessiert sind.quelle
Installieren Sie das
unzip
Paket abhängig von Ihrer Distribution . Dann einfach ausstellenDadurch wird der Inhalt an STDOUT ausgegeben.
HTH
quelle
Andere haben über die Verwendung von unzip -p und Piping für grep oder awk oder was auch immer Sie brauchen gepostet. Während dies in den meisten Fällen funktioniert, ist es erwähnenswert, dass Sie aufgrund der Beschränkung von MANIFEST.MF auf 72 Zeichen pro Zeile möglicherweise nach Schlüsseln suchen, deren Werte über mehrere Zeilen verteilt sind und daher sehr schwer zu analysieren sind. Ich würde gerne ein CLI-Tool sehen, das tatsächlich einen gerenderten Wert aus der Datei ziehen kann.
http://delaltctrl.blogspot.com/2009/11/manifestmf-apparently-you-are-just.html
quelle
$ tar xfO some.jar META-INF/MANIFEST.MF
x
extrahiert undO
leitet zu stdout weiter.Hinweis: Scheint nur in bsdtar zu funktionieren, nicht in GNU tar.
quelle
Das folgende Groovy-Skript verwendet die Java-API, um das Manifest zu analysieren und Probleme mit dem seltsamen Zeilenumbruch des Manifestformats zu vermeiden:
Übergeben Sie JAR-Dateien als Argumente:
Oder wenn Sie verzweifelt nach einem Einzeiler suchen:
quelle