Java Tools Tutorials - Herong's Tutorial Notes - Version 5.32, by Dr. Herong Yang
Disassembling Java Bytecode Class Files with 'javap -c -private'
This section provides a tutorial example of how to disassemble Java bytecodes with 'javap -c -private' command. The disassembled codes are JVM execution instructions.
Actually, the main function of "javap" is to disassemble Java bytecodes with the "-c" option. The disassembed codes are execution instructions of JVM (Java Virtual Machine).
Now, let's try "javap -c -private" with the bytecode compiled from Circle.java source code.
C:\herong>javap -private Circle Compiled from "Circle.java" public class Circle extends java.lang.Object{ public java.lang.String uom; private int x; private int y; private int r; public Circle(); Code: 0: aload_0 1: invokespecial #1; //Method java/lang/Object."<init>":()V 4: aload_0 5: ldc #2; //String Centimeter 7: putfield #3; //Field uom:Ljava/lang/String; 10: aload_0 11: iconst_0 12: putfield #4; //Field x:I 15: aload_0 16: iconst_0 17: putfield #5; //Field y:I 20: aload_0 21: iconst_1 22: putfield #6; //Field r:I 25: return public void setRadius(int); Code: 0: aload_0 1: iload_1 2: putfield #6; //Field r:I 5: return public void setCenter(int, int); Code: 0: aload_0 1: iload_1 2: putfield #4; //Field x:I 5: aload_0 6: iload_2 7: putfield #5; //Field y:I 10: return ... private double getArea(); Code: 0: ldc2_w #18; //double 3.14159d 3: aload_0 4: getfield #6; //Field r:I 7: i2d 8: dmul 9: aload_0 10: getfield #6; //Field r:I 13: i2d 14: dmul 15: dreturn }
Note that:
Last update: 2015.
Table of Contents
'javac' - The Java Program Compiler
'java' - The Java Program Launcher
'jconsole' - Java Monitoring and Management Console
'jstat' - JVM Statistics Monitoring Tool
jvisualvm (Java VisualVM) - JVM Visual Tool
►'javap' - The Java Class File Disassembler
'javap' - Java Disassembler Command and Options
Listing Public Variables and Methods with 'javap'
Listing Private Variables and Methods with 'javap -private'
►Disassembling Java Bytecode Class Files with 'javap -c -private'
Looking Up Method Signature with 'javap' Command
'keytool' - Public Key Certificate Tool