Saltar al contenido

Descompilador de Java – Javatpoint

octubre 18, 2021
java decompiler

Un descompilador de Java es un tipo especial de descompilador que toma un archivo de clase como entrada y produce código fuente Java como salida. La descompilación es exactamente el proceso inverso de la compilación. Por lo tanto, el descompilador no produce una réplica del código fuente. Es porque se perdió un poco de información del código fuente durante la compilación del programa.

Pero hay muchas complejidades, por ejemplo, el código Java está estructurado y el código de bytes no está estructurado. Además, la transformación no es una a una: dos programas Java diferentes pueden producir un código de bytes idéntico.

Hay los siguientes descompiladores de Java disponibles:

  • Descompilador de DJ Java
  • JReversePro
  • JODE
  • JD-CORE / JD-GUI / JD Eclipse

Descompilador JAD

El JAD es una aplicación de línea de comandos. Está escrito en C ++. La función principal es desmontar los archivos .class. JAD se puede implementar desde la consola y descompilará las clases de Java en el código fuente. De esta manera, los desarrolladores pueden profundizar en el código de las bibliotecas en tiempo de ejecución de Java e incluso embellecer las líneas, preparándolas para una recompilación. Existe el riesgo de sobrescribir los archivos de código fuente, especialmente cuando se utiliza el parámetro ‘-o’ (sobrescribir archivos de salida sin confirmación).

Ejemplo

Creemos un programa Java simple que suma dos números.

Siga los pasos para convertir el .class en código fuente Java legible. Aquí estamos usando el descompilador JAD.

Paso 1: Descargue la herramienta JAD de https://bit.ly/2XuRzT5

Paso 2: Extraiga el archivo zip y obtenga jad.exe.

Descompilador de Java

Paso 3: Cree un archivo .java (DecompilerDemo.java) en la misma carpeta en la que extrajo el archivo zip.

Paso 4: Compile y ejecute el archivo .java. Generará un archivo .class en la carpeta respectiva.

Descompilador de Java2

Paso 5: Ahora mueva el archivo .class y la aplicación jad a otra carpeta.

Descompilador de Java3

Paso 6: Escriba el comando: jad DecompilerDemo

Descompilador de Java4

El comando anterior genera un archivo .jad en la carpeta respectiva.

Descompilador de Java5

Paso 7: Escriba el comando: java DecompilerDemo de jad

Decompilador de Java6

Genera el archivo .java en la misma carpeta.

Descompilador de Java7

Abrimos el DecompilerDemo.java obtenemos el siguiente código:

Podemos observar que el archivo .java escrito es diferente del archivo .java generado pero da el mismo resultado.

Desensamblador de archivos de clase Java

Comando javap

los javap es una herramienta de línea de comandos de Java que viene con JDK. Se utiliza para desensamblar el archivo de clase e imprime una versión legible por humanos de esa clase. Su salida depende de la opción utilizada. Sin utilizar ninguna opción, javap imprime el paquete, los campos protegidos y públicos y los métodos de las clases que se le pasan. A javap también se usa para averiguar qué métodos están disponibles para una clase si no tiene el código fuente que se usó para crear la clase. El formato general del comando javap es:

Opciones

Con el comando javap, hay muchas opciones disponibles. Algunos de ellos son:

  • -C: Imprime código desmontado.
  • -pag: Muestra todas las clases y miembros.
  • -s: Imprime firmas tipográficas internas.
  • -constantes: Muestra constantes finales estáticas.

Desmontar un archivo de clase usando el comando javap

Genere el archivo de clase del programa anterior y use el siguiente comando para desensamblar el archivo de clase.

Producción

La siguiente salida muestra lo que contiene el archivo de clase.

Descompilador de Java8

Pero no obtenemos el código fuente de Java mediante el comando javap. Así que hay muchos descompiladores disponibles que convierten un archivo .class en un archivo .java.


close