Abrir jar e descompilar classes

Tem alguma API que abra um jar e descompila as classes que estão no jar?

API não, mas existem algumas ferramentas que fazem isso. Nunca usei, então não sei indicar.

Para abrir o jar estou usando a java.util.jar.JarFile, fica ai a dica para se alguém olhar esta thread mais tarde.
Agora estou quebrando a cabeça para descompilar o arquivo .class e ler o código do mesmo.

Achei duas APIs que fazem manipulação de bytecode, que é a javaassit e ASM.
Gostaria de saber se alguém já usou e se tem alguma dica para dar.