Jlint will check your Java code and find bugs, inconsistencies and synchronization problems by doing data flow analysis and building the lock graph. Jlint is extremely fast - even on large projects, it requires only one second to check all classes! It is easy to learn and requires no changes to the class files. Jlint has been used in an industrial environment and successfully uncovered faults with little effort!
The original version of Jlint was written by Konstantin Knizhnik. It was extended by Cyrille Artho to perform more extensive synchronization checks. Many others contributed in maintaining Jlint; see the README file.
The latest version of Jlint can be downloaded from the files section of the Sourceforge project page.
Binaries are available for Windows systems. For other platforms, to install Jlint you must compile it from source code. You will need a C++ compiler and a make utility: GCC and GNU Make work well.