Scans source code and looks for potential problems possible bugs, unused and suboptimal code, over-complicated expressions and duplicate code. [Open Source, BSD license]
A static Java source code analyzer that detects locking and threading issues, performance and scalability problems, and checks complex contracts such as Java serialization by performing type, data flow, and lock graph analysis. [Freeware]
A command line tool employing static analysis on Java source code. Potential bugs and weak points are reported and a manual describes how source code can be improved. [Commercial, trial version]
A static analyzer of Java source code, which provide set of predefined checks (such as tracking open/close or finding unused methods) and more general framework for implementing analyzing of semantics model of software project. [Open source]