title: Is there something like bsdiff/Courgette for jar files?
body: <p>Google uses <a href="http://www.daemonology.net/bsdiff/" rel="noreferrer">bsdiff</a> and <a href="http://www.chromium.org/developers/design-documents/software-updates-courgette" rel="noreferrer">Courgette</a> for patching binary files like the Chrome distribution. Do any similar tools exist for patching jar files?</p>
  
  <p>I am updating jar files remotely over a bandwidth-limited connection and would like to minimize the amount of data sent. I do have some control over the client machine to some extent (i.e. I can run scripts locally) and I am guaranteed that the target application will not be running at the time.</p>
  
  <p>I know that I can patch java applications by putting updated class files in the classpath, but I would prefer a cleaner method for doing updates. It would be good if I could start with the target jar file, apply a binary patch, and then wind up with an updated jar file that is identical (bitwise) to the new jar (from which the patch was created).</p>