Почему эти два jar-файла с одинаковым содержимым имеют разные размеры? - PullRequest
5 голосов
/ 16 марта 2009

Я реорганизую нашу базу java-кода и хотел сравнить наши результирующие файлы jar.

Когда я собираю старое дерево исходников, я получаю файл jar размером 3360081.

В новом исходном дереве это 3360128.

Я делаю "jar tvf jarfile" и затем удаляю даты из файла.

Листинг выглядит так:

     0 Mon Mar 16 10:41:16 EDT 2009 META-INF/
   102 Mon Mar 16 10:41:14 EDT 2009 META-INF/MANIFEST.MF
     0 Mon Mar 16 10:41:14 EDT 2009 decodes/

После того, как я убрал даты, список выглядит следующим образом:

     0  META-INF/
   102  META-INF/MANIFEST.MF
     0  decodes/

Два списка банок идентичны.

Что может вызвать разницу в 47 байтов в "идентичных" файлах jar?

Я запускаю компиляцию в RedHat Linux 4.

Ответы [ 3 ]

7 голосов
/ 16 марта 2009

Скорее всего, причиной является изменение файла скомпилированных файлов. Кроме того, ваши файлы классов могут на самом деле отличаться. Если вы реорганизовали структуру вашего пакета, они определенно это сделают.

2 голосов
/ 16 марта 2009

Вероятно, это не тот случай - но случайно ли вы используете разные версии компилятора (даже незначительные различия версий) при компиляции двух исходных баз?

1 голос
/ 16 марта 2009

Если вы используете BeyondCompare (или аналогичный), он будет различать ваши файлы JAR и идентифицировать различные файлы в архивах (вплоть до различий строк / символов для текстового файла, или просто выделять двоичные файлы которые изменились).

(я не думаю, что времена изменения файлов хранятся в их текстовом представлении в формате .jar, и я не верю, что они будут влиять на размеры файлов .jar)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...