Ich arbeite mit *.jar
Dateien. Soweit ich weiß, handelt es sich um ein Archivformat, das ich mit Standardtools wie zip
oder unzip
-Befehlen bearbeiten kann.
Ich muss oft eine bereits komprimierte Datei ersetzen. Bisher entpacke ich die alte Datei, lösche sie und verschiebe die neue an den richtigen Ort (es ist ein Quellarchiv, alsohochschichtig), und dann habe ich es erneut komprimiert.
Ist es möglich, dies schneller zu machen? Es wären 3 Informationen erforderlich: die zu ersetzende Datei, das Zielarchiv, in dem ersetzt werden soll, und der Pfad zur zu ersetzenden Datei im Archiv.
Antwort1
Sie können dies in zwei Schritten tun:
zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add
Sie können den Teil ignorieren -C base/path
, wenn Sie sich bereits im Basisverzeichnis befinden (das enthält path/to/file/to/add
).
Wenn Sie mit JARs statt mit einfachen ZIP-Dateien arbeiten, sollten Sie sich angewöhnen, soweit möglich jar
„anstelle von“ zu verwenden. Dadurch wird sichergestellt, dass das Manifest korrekt gespeichert wird.zip
Bei einer einfachen ZIP-Datei können Sie eine Datei hinzufügen oder aktualisieren, indem Sie sie einfach (erneut) archivieren. Verwenden Sie daher anstelle des jar
obigen Befehls:
zip myzip.zip path/to/file/to/add
Damit dies funktioniert, müssen Sie sich im Basisverzeichnis befinden. ( jar
funktioniert auch, ist aber jar
beim Arbeiten mit ZIP-Dateien merkwürdigerweise erforderlich.)