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