DiffJ is a commandline application that compares Java files based on content, not whitespace, comments, or reordering of types, methods, or fields. Its output is based on the Unix program diff, and it also has a "brief" output format for a concise summary of what changed. It can work on directories recursively, looking for matching filenames, like "diff -r dir0 dir1". It is primarily for developers refactoring and reformatting Java code, for which most difference tools tend to produce misleading results regarding the type and extent of changes.
The difference comparator of functions (methods and constructors) has been fixed, and the default Java source is now 1.5.