Jarファイルの中身を見て比較する方法は?diffではできない!winmergeは!

未分類

リリース作業のミスを防ぐために、Jarファイルの比較する方法はどうすればよろしのでしょうか。

Jarファイルとは

  • コンパイルされた複数のJavaバイトコード及びそれが使用する画像などのリソースを一つにまとめZIP形式で圧縮されたファイル、及びそれを出力するツールのことである。
  • 圧縮されたファイルの拡張子には、「.jar」が使われる。

jarファイルはdiffができるのか

JAR は Java ARchive の略です

・JarファイルはZip形式のファイル

・ファイルの作成日付(タイムスタンプ)が異なると中身が全く同じでもアーカイブ後のファイルにはバイナリ差分が発生

jarファイルの整合性の解決策

Jarファイルの中身が同一であることを確かめるには、アーカイブを解凍して内容同士を比較する必要があります。

Bashを使用しているのであればプロセス置換が使用可能なので、簡易的には以下のように作業ディレクトリへ解凍すること無く直に突合することもできます。

diff -qr  <( jar -x0f A.jar )  <( jar -x0f B.jar )

jarファイルの中身を見る方法

  • jarファイルの中身を見る方法

   jar tf [jarファイル名]

  • jarファイルの中身一部分を抽出

   jar -xvf [jarファイル名] [抽出するファイル名] [ディレクトリ名]

  • jarファイルの中身一部分書き込み

jar -uf [jarファイル名] [書き込むファイル名] [ディレクトリ名]

jarファイルを確認するには、Diffが取れるツールあり

拡張子 .jar を、 .zip にして展開(解凍)。
ディレクトリまるごとのファイル内容比較ツールなどで、比較します。

Zipdiffで差分がとれるようだ。Antにも組み込めるしいいねこういうの。

zipdiff - Welcome

まとめ

ご理解いだけましたでしょうか。

タイトルとURLをコピーしました