How to identify a missing method (Binary Compatibility) in a JAR statically

Clirr - checks Java libraries for binary and source compatibility with older releases:

java -jar clirr-core-0.6-uber.jar -o OLD.jar -n NEW.jar

japi-compliance-checker - backward API/ABI compatibility checker for a Java library:

japi-compliance-checker -lib NAME -old OLD.jar -new NEW.jar

enter image description here

sigtest - Oracle's SigTest signature testing and API conformance tool

japitools - test for compatibility between Java APIs

japi-checker - a java API backward compatibility checker which works at binary level

revapi - API analysis and change tracking tool

or manually using javap decompiler:

javap OLD.class > OLD.txt
javap NEW.class > NEW.txt
diff -rNau OLD.txt NEW.txt > CHANGES.txt

japicmp is another tool for checking binary compatibility. It is available as standalone command line tool or as maven plugin.


Revapi can do the job, too. It is easy to incorporate it into maven builds, which is not your case obviously, but might be of interest to others.

It can also check arbitrary sets of jars using its standalone mode.