Un decompilador es un programa que permite traducir un archivo compilado a su fuente original. He encontrado de mucha utilidad estos programas en diversas situaciones adversas con las que me enfrenado.

jad.gifPor ejemplo al llegar a trabajar a algún proyecto sin documentación, sin control de versiones y sin siquiera estar seguro de que el fuente que tengo es el correcto, me ayudado decompilar los archivos que se encuentran en producción al momento de buscar la fuente de problemas y corroborar que las versiones con la que trabajo son correctas. También por ejemplo en aquellos proyectos mal hechos en donde las variables de conexión están hard codeadas y de pura casualidad los valores del código fuente son los del ambiente de pruebas.

Para java encontré un excelente decompilador gratuito llamada Jad. Está escrito en C++ y corre como un ejecutable en la línea de comando. Esto nos otorga portabilidad (no necesita instalación) y flexibilidad por lo que lo podemos incorporarlo en nuestros ambientes de desarrollo como Eclipse.

Puedes descargarlo de su página:
http://www.kpdus.com/jad.html

En la misma página puedes encontrar varias interfaces gráficas que utilizan Jad como motor de descompilación. Uno muy sencillo y práctico es FrontEnd Plus el cual cuenta con muchas herramientas. De este programa me agrado que te muestra de forma muy práctica las librerías importadas y los métodos del código.

frontend.png