Я пытался редактировать один байт в извлеченном файле jar плагина Eclipse.Я заметил, что после повторного сжатия файлов в виде файла jar результирующий файл был больше исходного (всего 1%) и плагин не работал.Eclipse загрузился, но тихо выключился после выбора рабочей области.Откат к исходному плагину позволил ему успешно запуститься.
Затем я попытался распаковать, затем сжать плагин (ничего не меняя), и результирующий файл JAR был все еще больше, чем исходный, и также не работал.
$ jar -xf temp/in.jar
затем
$ jar -cf out.jar temp/*
$ du in.jar out.jar
4216 in.jar
4236 out.jar
Я думаю, это может быть связано с изменением меток времени, но я не думал, что это помешает затмению принять его.
Итак, мой вопрос: есть ли способ распаковать банку, изменить байт и сжать ее, не меняя банку?
Я использую Ubuntu 10.04 - 64 бит:
Linux user 2.6.32-38-generic #83-Ubuntu SMP Wed Jan 4 11:12:07 UTC 2012 x86_64 GNU/Linux
При взгляде на стол банки виден другой порядок:
$ jar tf in.jar | head -n 5
META-INF/
META-INF/MANIFEST.MF
com/
com/android/
com/android/ide/
$ jar tf out.jar | head -n 5
META-INF/
META-INF/MANIFEST.MF
about.html
about.ini
about.properties
Есть ли способ заказать их по-другому в банке?