私は*.jar
ファイルを操作していますが、私の理解では、これはzip
やunzip
コマンドなどの標準ツールで操作できるアーカイブ形式です。
圧縮済みのファイルを置き換える必要があることがよくあります。これまでは、解凍して古いファイルを削除し、新しいファイルを適切な場所に移動します(ソースアーカイブなので、高度に階層化された)、その後再圧縮しました。
もっと早く行うことは可能ですか? 必要な情報は、置換するファイル、置換先のアーカイブ、アーカイブ内で置換するファイルへのパスの 3 つです。
答え1
次の 2 つの手順で実行できます。
zip -d myjar.jar path/to/file/to/delete
jar uf myjar.jar -C base/path path/to/file/to/add
-C base/path
すでにベース ディレクトリ ( を含む) にいる場合は、 の部分を無視できますpath/to/file/to/add
。
単純な ZIP ファイルではなく JAR ファイルを扱う場合は、できる限り ではjar
なくを使用する習慣をつけてください。これにより、マニフェストが正しく保存されることが保証されます。zip
プレーンな ZIP ファイルでは、ファイルを (再) アーカイブするだけでファイルを追加または更新できます。そのため、jar
上記のコマンドの代わりに次のコマンドを使用します。
zip myzip.zip path/to/file/to/add
これを機能させるには、ベース ディレクトリにいる必要があります。(jar
も機能しますが、ZIP ファイルで作業するときに要求するのは奇妙ですjar
。)