Week 156 — What is the javap tool and what is it used for?
Question of the Week #156
What is the javap tool and what is it used for?
javapjavapjavapJavapTest.javajavac JavapTest.javaJavapTest.classjavap JavapTest.class$ javap JavapTest.class
Compiled from "JavapTest.java"
public class JavapTest {
public JavapTest();
void main();
}private-p-private$ javap -p JavapTest.class
Compiled from "JavapTest.java"
public class JavapTest {
private int i;
public JavapTest();
void main();
}-publicpublic$ javap -public JavapTest.class
Compiled from "JavapTest.java"
public class JavapTest {
public JavapTest();
}-c$ javap -p -c JavapTest.class
Compiled from "JavapTest.java"
public class JavapTest {
private int i;
public JavapTest();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
void main();
Code:
0: aload_0
1: bipush 123
3: putfield #7 // Field i:I
6: getstatic #13 // Field java/lang/System.out:Ljava/io/PrintStream;
9: aload_0
10: getfield #7 // Field i:I
13: invokevirtual #19 // Method java/io/PrintStream.println:(I)V
16: return
}staticmainmainthisthisaload_0aload_0aload_0123bipush 123iiputfieldi = 123;System.outgetstaticgetstaticgetfieldPrintStream#printlnSystem.out.println(i);returnreturn-l$ javap -c -l JavapTest.class
Compiled from "JavapTest.java"
public class JavapTest {
public JavapTest();
Code:
0: aload_0
1: invokespecial #1 // Method java/lang/Object."<init>":()V
4: return
LineNumberTable:
line 1: 0
void main();
Code:
0: aload_0
1: bipush 123
3: putfield #7 // Field i:I
6: getstatic #13 // Field java/lang/System.out:Ljava/io/PrintStream;
9: aload_0
10: getfield #7 // Field i:I
13: invokevirtual #19 // Method java/io/PrintStream.println:(I)V
16: return
LineNumberTable:
line 4: 0
line 5: 6
line 6: 16
}-vjavap -v JavapTest.classjshelljshelljshellTOOLING/open TOOLINGjshell TOOLINGClass<?>public class JavapTest {
private int i;
void main() {
i = 123;
System.out.println(i);
}
}public class JavapTest {
private int i;
void main() {
i = 123; // line 4
System.out.println(i); // line 5
} // line 6
}