PMD scans Java source code and looks for potential problems like:
- Unused local variables
- Empty catch blocks
- Unused parameters
- Empty 'if' statements
- Duplicate import statements
- Unused private methods
- Classes which could be Singletons
- Short/long variable and method names
PMD has plugins for JEdit, JBuilder, Netbeans/Forte/Sun ONE, IntelliJ IDEA, Maven, Ant, Eclipse, Gel, and Emacs.