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