IMHO, the best java decompiler is Jad (v1.5.8g) at this moment. Unfortunately, it’s no longer maintained by the author. To improve the quality of decompiled code (or decompile Java 1.5+ classes), there’s a helper tool – JadRetro (the java generics are not supported but the generated source is functionally equivalent to the original in most cases).
It’s easy to use:
jadretro filename*.class
jad filename.class
]]>