Besides a good code formatter (there are several out there, and most IDEs come with one), you don't really need a tool, in my not so humble opinion. What you need is a very basic, informal coding standard that is *in the heads* of your team, and which gets refined while your team closely collaborates on the project (assuming that they are colocated). Pair Programming, for example, is a very good "tool" for propagating a team wide coding standard.
The soul is dyed the color of its thoughts. Think only on those things that are in line with your principles and can bear the light of day. The content of your character is your choice. Day by day, what you do is who you become. Your integrity is your destiny - it is the light that guides your way. - Heraclitus
There's no substitute for a battle-tested and informed software engineer with an interest in keeping up-to-date on best practices but there are plenty of books out there that will help. First carve your requirements in to coding standards (easily automated with tools like Jalopy from Triemax) and code structure (you will need skilled developers and highly regarded books on the subject) and finally development process: Evo or UP or XP.
Those are three separate areas where the code beautifier (formatter) is the least important because it can be automated.
Some of the static code review tools do a pretty cool job of spotting potential bugs, but most of them primarily critique your indenting and commenting. A good code formatter will take care of indenting, and the "standard" level of commenting they suggest is redundant at best and counter-productive or dangerous at worst. Go with human reviews.
A good question is never answered. It is not a bolt to be tightened into place but a seed to be planted and to bear more seed toward the hope of greening the landscape of the idea. John Ciardi
With PMD it's easy to add your own rules, something you will want to do sooner or later. When selecting a tool I find it important that it integrates seemlessly into the build environment, whether that is Ant, Eclipse, NetBeans or IntelliJ. Otherwise it just won't get used as much as it should be. Other options you might look into are JCSC, Hammurapi, lint4j and jlint. My favorites are PMD and Hammurapi (which produces very nice reports that are cross-referenced with the source code).
Joined: Jan 29, 2003
I have to admit my comments on tools were based on research a couple years old. A third party is applying Hammurapi to some of our code. I'll keep an open mind until I see what they come back with.