JReverse Pro

Program-Transformation.Org: The Program Transformation Wiki
JReversePro is an open source Java Decompiler / Disassembler written entirely in Java. From the home page: "The utlimate objective of this project is to provide a decompiler that generates a Java object-based structure that can be programmatically inspected with specific API. Other decompilers we know of only output a stringified version of the class' original source file."

Hosted on SourceForge, released under the GPL license.

For tests see DecompilationJrpTest.