javap command is used to disassemble one or
more class files. To get the help about javap command, type javap in command
prompt.
E:\>javap Usage: javap <options> <classes> where possible options include: -help --help -? Print this usage message -version Version information -v -verbose Print additional information -l Print line number and local variable tables -public Show only public classes and members -protected Show protected/public classes and members -package Show package/protected/public classes and members (default) -p -private Show all classes and members -c Disassemble the code -s Print internal type signatures -sysinfo Show system info (path, size, date, MD5 hash) of class being processed -constants Show static final constants -classpath <path> Specify where to find user class files -bootclasspath <path> Override location of bootstrap class files
Syntax
to use javap
javap [ options ] classes
If no options specified, javap prints out
the package, protected, and public fields and methods of the classes passed to
it.
Let’s say I had Employee class like below.
public class Employee { private String firstName; private String lastName; private String id; private static int totalEmplooyees; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getId() { return id; } public void setId(String id) { this.id = id; } static int getTotalEmplooyees() { return totalEmplooyees; } static void setTotalEmplooyees(int totalEmplooyees) { Employee.totalEmplooyees = totalEmplooyees; } @Override public String toString() { StringBuilder builder = new StringBuilder(); builder.append("Employee [firstName=").append(firstName).append(", lastName=").append(lastName) .append(", id=").append(id).append("]"); return builder.toString(); } }
Compile Employee.java, to get the class
file. Use javap command to get the package, protected, and public fields and
methods of the class.
E:\>javap Employee.class Compiled from "Employee.java" public class Employee { public Employee(); public java.lang.String getFirstName(); public void setFirstName(java.lang.String); public java.lang.String getLastName(); public void setLastName(java.lang.String); public java.lang.String getId(); public void setId(java.lang.String); static int getTotalEmplooyees(); static void setTotalEmplooyees(int); public java.lang.String toString(); }
To
get version information
Use “javap –version”.
E:\>javap -version 1.7.0_65
To
get only public memebers
Use “javap” with “public” option
E:\>javap -public Employee.class Compiled from "Employee.java" public class Employee { public Employee(); public java.lang.String getFirstName(); public void setFirstName(java.lang.String); public java.lang.String getLastName(); public void setLastName(java.lang.String); public java.lang.String getId(); public void setId(java.lang.String); public java.lang.String toString(); }
To
get protected and public classes and members
Use “javap” with “protected” option.
E:\>javap -protected Employee.class Compiled from "Employee.java" public class Employee { public Employee(); public java.lang.String getFirstName(); public void setFirstName(java.lang.String); public java.lang.String getLastName(); public void setLastName(java.lang.String); public java.lang.String getId(); public void setId(java.lang.String); public java.lang.String toString(); }
To
get package, protected, and public classes and members
Use “javap” with “package” option.
E:\>javap -package Employee.class Compiled from "Employee.java" public class Employee { public Employee(); public java.lang.String getFirstName(); public void setFirstName(java.lang.String); public java.lang.String getLastName(); public void setLastName(java.lang.String); public java.lang.String getId(); public void setId(java.lang.String); static int getTotalEmplooyees(); static void setTotalEmplooyees(int); public java.lang.String toString(); }
To
get all members
Use “javap” with “private” option.
E:\>javap -private Employee.class Compiled from "Employee.java" public class Employee { private java.lang.String firstName; private java.lang.String lastName; private java.lang.String id; private static int totalEmplooyees; public Employee(); public java.lang.String getFirstName(); public void setFirstName(java.lang.String); public java.lang.String getLastName(); public void setLastName(java.lang.String); public java.lang.String getId(); public void setId(java.lang.String); static int getTotalEmplooyees(); static void setTotalEmplooyees(int); public java.lang.String toString(); }
To
get path, size, date, MD5 hash of the class
Use “javap” with “sysinfo” option.
E:\>javap -sysinfo Employee.class Classfile /E:/Employee.class Last modified Apr 8, 2015; size 1156 bytes MD5 checksum 9d99d9b8d281a302e9ad0b86657e9d7f Compiled from "Employee.java" public class Employee { public Employee(); public java.lang.String getFirstName(); public void setFirstName(java.lang.String); public java.lang.String getLastName(); public void setLastName(java.lang.String); public java.lang.String getId(); public void setId(java.lang.String); static int getTotalEmplooyees(); static void setTotalEmplooyees(int); public java.lang.String toString(); }
Other Articles
No comments:
Post a Comment