Есть ли что-то как bsdiff/Courgette для файлов банки?

Google использует bsdiff и Кабачок для исправления двоичных файлов как распределение Chrome. Какие-либо подобные инструменты существуют для исправления файлов банки?

Я обновляю файлы банки удаленно по ограниченному соединению пропускной способности и хотел бы минимизировать отправленный объем данных. Я действительно имею некоторый контроль над клиентской машиной в некоторой степени (т.е. Я могу запустить скрипты локально), и мне гарантируют это, целевое приложение не будет работать в то время.

Я знаю, что могу исправить JAVA-приложения путем помещения обновленных файлов класса в путь к классу, но я предпочел бы более чистый метод для того, чтобы сделать обновления. Было бы хорошо, если я мог бы запустить с целевого файла банки, применить двоичный патч и затем закончить обновленный файл банки, который идентичен (поразрядно) новой банке (из которого патч был создан).

15
задан Ken Liu 31 March 2010 в 01:39
поделиться

2 ответа

Попробуйте проект javaxdelta на Sourceforge. Это должно позволять создавать патчи и применять их.

[EDIT] Этого инструмента пока нет. Откройте файл JAR с помощью обычных инструментов, а затем используйте javaxdelta для создания одного патча для каждой записи в JAR. Заархивируйте их и скопируйте на сервер.

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

2
ответ дан 1 December 2019 в 05:23
поделиться

.jar файлы уже сжаты, так что вы действительно спрашиваете for - это сжатие, которое хорошо работает с zip-файлами;). Если вы доберетесь до до , вы запихнете его в банку, у вас будет больше шансов воспользоваться знанием того, что это "java", я полагаю. Я подозреваю, что вы могли бы адаптировать факторизацию, описанную в этой статье , как специфичный для Java метод сжатия.

1
ответ дан 1 December 2019 в 05:23
поделиться
Другие вопросы по тегам:

Похожие вопросы: