## javap - El descompilador de Ficheros de Clases Java

Desensambla los ficheros class.

### Síntaxis de Utilización

>     javap [ opciones ] clase ...

### Descripción

> El comando javap desensambla un fichero class. Su salida depende de las opciones utilizadas. Si no se utilizan opciones, javap imprime los campos y los métodos públicos de la clase pasada. javap muestra la salida en stdout. Por ejemplo, la siguiente declaración de clase:

>     class C {
>     	static int a= 1;
>     	static int b= 2;
>     	static {
>     		System.out.println(a);
>     	}
>     	static {
>     		a++;
>     		b = 7;
>     		System.out.println(a);
>     		System.out.println(b);
>     	}
>     	static {
>     		system.out println(b);
>     	}
>     	public static void main(String args[]) {
>     	C c = new C();
>     	}
>     }

> Cuando el resultado de la clase C, sea pasado a javap sin utilizar opciones, resultará la siguiente salida:

>     Compiled from C:\users\clases\C.java
>     private class C extends java\lang\Object {
>     	static int a;
>     	static int b;
>     	public static void main(java\lang\String[]);
>     	public C();
>     	static void();
>     }

### Opciones

> -l
>   Imprime una tabla de línea y variables locales.

> -p
>   Imprime también los miembros y método privados y protegidos de la clase, además de los miembros públicos.

> -c
>   Imprime el código desensamblado, es decir, las intrucciones que comprenden los bytecodes Java, para cada uno de los métodos de la clase. Por ejemplo, si se pasa la clase C a javap utilizando -c el resultado sería la siguiente salida:

>       Compiled from C:\users\clases\C.java
>       private class C extends java\lang\Object {
>       	static int a;
>       	static int b;
>       	public static void main(java\lang\String[]);
>       	public C();
>       	static void();

>       Method void main(java\lang\String [])
>       	0 new #4
>       	3 invokenonvirtual # 9 () V>
>       	6 return

>       Method C()
>       	0 aload_0 0
>       	1 invokenonvirtual #10 ()V>
>       	4 return

>       Method void()
>       	0 iconst_1
>       	1 putstatic #7
>       	4 getstatic #6
>       	7 getstatic #7
>       	10 invokevirtual #8
>       	13 getstatic #7
>       	16 iconst_1
>       	17 iadd
>       	18 putstatic #7
>       	21 bipush 7
>       	23 putstatic #5
>       	26 getstatic #6
>       	29 getstatic #7
>       	32 invokevirtual #8
>       	35 getstatic #6
>       	38 getstatic #5
>       	41 invokevirtual #8
>       	44 iconst_2
>       	45 putstatic #5
>       	48 getstatic #6
>       	51 getstatic #5
>       	54 invokevirtual #8
>       	57 return
>       }

> -classpath path
>   Especifica el path que javap utilizará para buscar las clases. Sobreescribe el valor de la variable de entorno CLASSPATH. Los directorios deben estás separados por puntos y comas.

Ozito