`

javap反编译命令的使用

jdk 
阅读更多
用习惯了著名的反编译工具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 类名

比如某个类:
 
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:
  则可以看到字节码了:

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 显示所有类和成员。
1
0
分享到:
评论

相关推荐

    javap命令的使用技巧

    下面是一个简单的例子,演示了如何使用 javap 命令来反编译一个 class 文件。 首先,我们编写一个简单的 Java 类: ```java package com.thundersoft.metadata.test.kafka; import org.apache.kafka.clients....

    javap使用(1).docx

    `javap` 是 Java 开发工具包 (JDK) 中的一个重要工具,主要用于反编译 `.class` 文件中的字节码。通过 `javap`,开发者能够深入了解 Java 编译器是如何处理源代码并生成字节码的,这对于优化程序性能和理解 Java ...

    windows命令行中java和javac、javap使用详解(java编译命令)

    总结来说,要利用Windows命令行正确地编译、运行和反编译Java类文件,需要了解命令行的基本操作,正确安装和配置JDK,以及熟悉javac、java和javap这三个命令的具体选项和使用场景。通过这样的过程,我们可以更深入地...

    Java运行原理 javap命令运行结果

    此外,还学习了如何使用`javap`命令来查看字节码文件的具体内容,这对于理解Java程序在底层的运行机制非常重要。 以上就是关于Java运行原理及javap命令运行结果的相关知识点的详细介绍。希望对你有所帮助!

    .class 文件反编译工具

    尽管可以使用`javap`命令获取部分元数据,但无法获得源代码级别的详细信息。这就催生了反编译工具的需求。反编译工具通过解析.class文件的字节码,将其还原成接近原始Java源代码的形式,帮助开发者理解已编译的代码...

    Java代码的编译与反编译

    1. javap:Java自带的反编译工具,它可以从.class文件中提取关于方法的元信息,但不会反编译成完整源代码。 2. Jad:一个流行的第三方反编译工具,能够将.class文件反编译成可读性较好的Java源代码。Jad在Linux下...

    eclipse配置javap命令的方法

    然而,有时我们可能需要对Java字节码进行分析,这时就用到了`javap`命令,它是Java Development Kit (JDK)自带的一个反编译工具。本文将详细介绍如何在Eclipse中配置`javap`命令,以便在开发过程中方便地查看和理解...

    Java反编译工具(附操作教程)

    在Java开发环境中,如JDK已经安装,那么你可以使用内置的`javap`命令来查看简单的反编译信息。`javap`是JDK自带的一个命令行工具,它能够显示类、接口和它们的属性、方法的详细信息。但这只是一个基本的反编译器,...

    HelloWorld的javap -verbose HelloWorld 字节码初探

    2. **javap工具的使用**:详细介绍如何使用`javap`命令,包括基础用法和`-verbose`等高级选项的含义与作用。 3. **JVM指令集**:讲解JVM指令集的主要指令,如ALOAD(加载本地变量)、ICONST(常量加载)、IRETURN...

    java反编译工具

    不过,Java反编译工具通常需要JDK环境来运行,因为它们依赖于JDK中的`javap`命令和其他工具来进行反编译。 在Java反编译领域,有一些知名的工具,如JD-GUI、JAD、Procyon和FernFlower等。这些工具各有特点,例如JD-...

    反编译jar工具 jad

    例如,使用`jad -o output.txt your_jar_file.jar`命令可以将JAR中的所有类反编译到名为`output.txt`的文本文件中。 3. **反编译单个类**:如果你只想反编译JAR中的某个特定类,可以指定类名。例如,`jad -c ...

    eclipse.BytecodeOutline插件

    在遇到一些小问题的时候我们经常会使用Javap反编译取得字节码来分析,虽然Javap能完成这个工作,但是有两个缺点,一方面操作麻烦,需要很多步骤,一方面没有文档注释,对新手来说看起字节码来比较麻烦。这里推荐一个...

    Java代码编译和反编译的那些事儿

    Java代码编译和反编译的那些事儿 Java代码编译和反编译是Java开发者必须掌握的基本...例如,我们可以使用反编译工具来分析Java的枚举类型、Synchronized的实现原理、Switch对整型、字符型、字符串型的具体实现细节等。

    java中对 i=i++ 的 解释(反编译出java虚拟机指令的)

    这个表达式在Java中的行为可以通过反编译成Java虚拟机(JVM)指令来理解。 首先,让我们回顾一下给定的代码片段: ```java public class Test { public static void main(String[] args) { int i = 0; i = i++; ...

    java 2语言命令详解

    例如,要编译名为`HelloWorld.java`的源文件,可以使用以下命令: ``` javac HelloWorld.java ``` 2. **java**:Java解释器 `java` 命令用于运行编译后的Java程序。当你拥有一个或多个`.class`文件时,使用此...

    JAVA命令大全.pdf

    5. javap:这个工具用于反编译.class文件,查看Java类文件的内部结构。它可以显示类的方法、字段等信息。例如,使用命令`javap -l MyClass`可以查看类MyClass的详细信息。 6. jdb.exe:Java调试器,用于调试Java...

    Java2语言命令详解

    `javap`是Java的反汇编器,它可以显示关于类文件的详细信息。例如,`javap -c HelloWorld`会显示`HelloWorld.class`的字节码和解码后的指令。 六、javadoc 命令 `javadoc`用于生成API文档,它从源代码中的注释中...

    jdk常用命令

    例如,`javap -c HelloWorld` 可以看到`HelloWorld.class`的反编译结果。 6. **jconsole**:Java Monitoring and Management Console,用于监控Java应用的性能和内存使用情况。 7. **jvisualvm**:集成在JDK中的多...

    JAVA命令大全[参考].pdf

    5. `javap`: 这是一个类文件反汇编器,用于查看编译后的字节码。通过`javap YourClassName`,你可以看到类的公共成员、常量池、方法签名等信息。加上不同选项,如`-c`可以看到字节码指令,`-s`能看到内部类型的签名...

Global site tag (gtag.js) - Google Analytics