Also muss ich eine Datei aus einer JAR / War-Datei entfernen. Ich hatte gehofft, dass es so etwas wie "jar -d myjar.jar file_I_donot_need.txt" gibt.
Aber im Moment kann ich dies nur über meine Linux-Befehlszeile sehen (ohne WinRAR / Winzip oder ein Linux-Äquivalent zu verwenden)
- Führen Sie "jar -xvf" aus und extrahieren Sie die
vollständige Jar-Datei - Entfernen Sie die Dateien, die ich nicht benötige
- Rejar die JAR-Datei mit "jar -cvf"
Bitte sagen Sie mir, dass es einen kürzeren Weg gibt.
./myscript.sh -d <list of files>
Antworten:
jar ist schließlich nur eine zip-datei. Auf jeden Fall viel schneller als das Dekomprimieren / Neukomprimieren.
quelle
zip
und in diesem Fall ist es wichtig, das Dateiformat anzugeben:7z d -tzip file.jar dir/unwanted_file.txt
zip -d file.jar unwanted_folder/
In Java können Sie alle Einträge eines JARs kopieren, mit Ausnahme des Eintrags, den Sie löschen möchten. Das heißt, Sie müssen eine Kopie erstellen, aber nicht die einzelnen Dateien erstellen.
Sie können dies tun, indem Sie
quelle
Wenn Sie eine Datei löschen möchten, um die signierte JAR-Datei zu entfernen, können Sie die RSA-Datei wahrscheinlich auf Null setzen. Dies kann mit nur erreicht werden
jar u
. Siehe https://stackoverflow.com/a/24678645/653539 . (Hat für mich gearbeitet, obwohl ich zugebe, dass es ein Hack ist.)quelle