Java API compatibility testing tools


Japitools consists of two simple tools designed to test for compatibility between Java APIs. They were originally designed for testing free implementations of Java itself for compatibility with Sun's JDK, but they can also be used for testing backward compatibility between versions of any API.

The tools are japize and japicompat. Japize is a Java program which emits a listing of an API in a machine-readable format. Japicompat then takes two such listings and compares them for binary compatibility, as defined by Sun in the Java Language Specification (and as amended here). [TODO: find a link to the JLS for 1.5 and any other amended versions in between]


Japitools was written primarily by Stuart Ballard. The class file parsing code was written by Jeroen Frijters. Contributions have been made by various people including Brian Jones, Tom Tromey, Michael Koch and Jaroslav Tuloch. It used to incorporate part of Jode by Jochen Hoenicke, but Jeroen's class file parser is now used instead. If I forgot anyone, or if you'd like your name to link to somewhere, let me know.

[This is an attempt at a new homepage for Japitools. Enjoy looking at the ugly attempt at making the style reminiscent of the japi results pages. Much of the content has been moved from the old homepage and still needs cleaning up to reflect the current status.

Pages marked with a "*" still need significant work.]