javap反编译命令的使用
2013-08-09 17:13
239 查看
javap反编译命令的使用
用习惯了著名的反编译工具jad的话,如果有的时候单给出class文件,要快速看这个class文件的JDK版本号等,其实不用工具,也可以用JDK自带的javap命令进行反编译输出,下面小结
其用法:
1,javap -verbose 类名
得到的信息如下:
Compiled from "Test.java"
public class Test extends java.lang.Object
SourceFile: "Test.java"
minor version: 0
major version: 50
Constant pool:
......
可以看出jdk的版本,这个用在判断某些CLASS的版本是否兼容的时候很有用.
2 最常见的不带参数的情况:javap 类名
比如某个类:
Java代码
package test;
public class Test {
int number = 5;
public void sayHello() {
System.out.println("Hello");
}
}
则:
C:\temp\javaptest>javap Test
Compiled from "Test.java"
public class test.Test extends java.lang.Object{
int number;
public test.Test();
public void sayHello();
}
带参数-c:
则可以看到字节码了:
Java代码
C:\temp\javaptest>javap -c Test
Compiled from "Test.java"
public class test.Test extends java.lang.Object{
int number;
public test.Test();
Code:
0: aload_0
1: invokespecial #1; //Method java/lang/Object."<init>":()V
4: aload_0
5: iconst_5
6: putfield #2; //Field number:I
9: return
public void sayHello();
Code:
0: getstatic #3; //Field java/lang/System.out:Ljava/io/PrintStream;
3: ldc #4; //String Hello
5: invokevirtual #5; //Method java/io/PrintStream.println:(Ljava/lang/String;)V
8: return
}
带参数-l: 将显示行号和局部变量表
-public 只显示 public 类及成员。
-protected 只显示 protected 和 public 类及成员。
-package 只显示包、protected 和 public 类及成员。这是缺省设置。
-private 显示所有类和成员。
转自: /article/3751833.html
相关文章推荐
- windows命令行中java和javac、javap使用详解(java编译命令)(转)
- JVM 使用javap反编译命令解释i++和++i的区别
- 命令行中java和javac、javap使用详解(java编译命令)
- windows命令行中java和javac、javap使用详解(java编译命令)
- windows命令行中java和javac、javap使用详解(java编译命令)
- 我是这样学习Linux下C语言编程的-编译命令gcc的使用
- 使用javac和java命令编译和执行程序,学习隐藏在IDE背后的知识
- android的m、mm、mmm编译命令的使用
- cmd下使用java命令编译及运行程序
- 使用cocos命令编译cocos2d-js 3.2工程
- 使用 java 命令编译运行 java 程序
- 【C/C++】使用预编译命令时犯下的一个错误
- 使用cocos 命令编译项目简单错误识记
- 使用javap反编译Java字节码文件
- iOS静态库的编译和lipo命令的使用
- PX4源码和ardupilot使用Ubuntu命令下载和编译
- android的m、mm、mmm编译命令的使用
- 使用make命令编译项目文件入门
- 使用csc命令将.cs文件编译成.dll的过程
- 使用csc命令将.cs文件编译成.dll的过程