Google usa bsdiff y Courgette para parchar archivos binarios como la distribución de Chrome. ¿Existen herramientas similares para parchar archivos jar?¿Hay algo como bsdiff/Courgette para archivos jar?
Estoy actualizando archivos jar de forma remota a través de una conexión de ancho de banda limitado y me gustaría minimizar la cantidad de datos enviados. Tengo cierto control sobre la máquina del cliente hasta cierto punto (es decir, puedo ejecutar scripts localmente) y tengo la garantía de que la aplicación de destino no se ejecutará en ese momento.
Sé que puedo parchear aplicaciones Java al poner archivos de clase actualizados en el classpath, pero preferiría un método más limpio para hacer actualizaciones. Sería bueno si pudiera comenzar con el archivo jar de destino, aplicar un parche binario y luego terminar con un archivo jar actualizado que sea idéntico (bitwise) al nuevo jar (desde el cual se creó el parche).
¿Qué ventaja está buscando más de simplemente tratar el frasco como un archivo binario y remendándolo? –
Mayor compresión. Bsdiff y Courgette logran mayores índices de compresión porque los algoritmos que utilizan están diseñados específicamente para comprimir grandes ejecutables. No sé, pero me parece que se podría hacer lo mismo con los archivos jar. –
Pregunta relacionada: http://stackoverflow.com/questions/3738523/patching-java-software –