JBDiff (Java Binary Diff) utility is a Java port of the C based bsdiff utility by Colin Percival.
The file format is similar to, but currently not compatible with the bsdiff utility. This is because bsdiff uses bzip2 for compression which is not available in the standard Java libraries. Instead I use gzip (java.util.zip.*)
The diff utility is very memory hungry. Attempting to diff very large files with insufficient RAM may cause your computer to 'trash' (ie become unusably slow and may require a reset to recover). Comparing two 20MB files will take approx 80 seconds on a 2GHz Pentium 4 and will require a maximum heap size of at least 220 MBytes. The maximum heap size can be specified using the -Xmx switch to the Java VM (see examples below). The patch utility has more modest resource requirements.
To compare old.bin with new.bin and produce diff file new-old.diff:
java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBDiff old.bin new.bin new-old.diff
To patch old.bin with new-old.diff to produce new.bin:
java -Xmx200m -classpath jbdiff.jar ie.wombat.jbdiff.JBPatch old.bin new.bin new-old.diff
· Java Runtime Environment (JRE)
What's New in This Release:
· This release has been re-licensed to the BSD license.