javap - Java class文件分解器
来源:互联网 发布:ubuntu ssh key 登录 编辑:程序博客网 时间:2024/05/01 23:31
javap是jdk自带的一个工具,可以反编译,也可以查看java编译器生成的字节码,是分析代码的一个好工具。
描述:
在命令行上键入javap DocFooter后,输出结果如下
当然,如果想分析这个文件,可以讲输出结果输出到一个文件里。可以这样写
javap -c DocFooter > F://test.txt
这样就会输出到F盘的test.txt文件中了。
选项:
-help 不说了
-l 输出行和变量的表
-public 只输出public方法和域
-protected 只输出public和protected类和成员
-package 只输出包,public和protected类和成员,这是默认的
-private 输出所有类和成员
-s 输出内部类型签名
-c 输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令,
-verbose 输出栈大小,方法参数的个数
。。。
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javap.html
描述:
javap命令分解一个class文件,它根据options来决定到底输出什么。如果没有使用options,那么javap将会输出包,类里的protected和public域以及类里的所有方法。javap将会把它们输出在标准输出上。来看这个例子,先编译下面这个类。
import java.awt.*; import java.applet.*; public class DocFooter extends Applet { String date; String email; public void init() { resize(500,100); date = getParameter("LAST_UPDATED"); email = getParameter("EMAIL"); } public void paint(Graphics g) { g.drawString(date + " by ",100, 15); g.drawString(email,290,15); } }
在命令行上键入javap DocFooter后,输出结果如下
Compiled from DocFooter.java public class DocFooter extends java.applet.Applet { java.lang.String date; java.lang.String email; public DocFooter(); public void init(); public void paint(java.awt.Graphics); }如果加入了-c,即javap -c DocFooter,那么输出结果如下
Compiled from DocFooter.java public class DocFooter extends java.applet.Applet { java.lang.String date; java.lang.String email; public DocFooter(); public void init(); public void paint(java.awt.Graphics); } Method DocFooter() 0 aload_0 1 invokespecial #1 4 return Method void init() 0 aload_0 1 sipush 500 4 bipush 100 6 invokevirtual #2 9 aload_0 10 aload_0 11 ldc #3 13 invokevirtual #4 16 putfield #5 19 aload_0 20 aload_0 21 ldc #6 23 invokevirtual #4 26 putfield #7 29 return Method void paint(java.awt.Graphics) 0 aload_1 1 new #8 4 dup 5 invokespecial #9 8 aload_0 9 getfield #5 12 invokevirtual #10 15 ldc #11 17 invokevirtual #10 20 invokevirtual #12 23 bipush 100 25 bipush 15 27 invokevirtual #13 30 aload_1 31 aload_0 32 getfield #7 35 sipush 290 38 bipush 15 40 invokevirtual #13 43 return
当然,如果想分析这个文件,可以讲输出结果输出到一个文件里。可以这样写
javap -c DocFooter > F://test.txt
这样就会输出到F盘的test.txt文件中了。
选项:
-help 不说了
-l 输出行和变量的表
-public 只输出public方法和域
-protected 只输出public和protected类和成员
-package 只输出包,public和protected类和成员,这是默认的
-private 输出所有类和成员
-s 输出内部类型签名
-c 输出分解后的代码,例如,类中每一个方法内,包含java字节码的指令,
-verbose 输出栈大小,方法参数的个数
。。。
http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/javap.html
- javap - Java class文件分解器
- Javap反编译class文件
- 类分解器JavaP--分析Java字节码
- 类分解器JavaP--分析Java字节…
- javap命令将java的class文件反汇编
- class文件字节码分析工具:javap
- java指令集 javap -c class
- javap 反编译Java class字节码
- 用javap命令查看Java的static块在.class文件中的表示
- open jdk javap对于class文件的解析分析
- 如何利用Javap工具对.class文件进行查看
- javap——查看class文件的方法
- 使用javap反编译Java字节码文件
- Java类文件检查工具javap
- 使用javap反编译Java字节码文件
- javap反编译java字节码文件
- Javap查看Class指令
- Javap查看Class指令
- MyBatis关于LIKE的处理方法
- JQuery选择过滤器大全
- Effective C# Rule number 1
- Java面试题和答案解析
- /etc/fstab文件详解
- javap - Java class文件分解器
- 弹出窗口并wirte内表内容
- 锁机制-动态通用锁
- 按内表某些字段汇总处理
- 硬盘分区的ext3文件系统被格式化,剩余空间不变?
- 创建总账科目类型会计凭证
- 带多行标题的alv_list
- Filter在Web开发中的应用
- update module