软件指南针:专注于软件传播与分享

JDK工具javap用法详解

来源:原创 1981次浏览 0条评论
☞ 本文主要介绍软件Java的相关内容:JDK工具javap用法详解

   其下列版本/分支可以参考本文:

  • 全部版本/分支

javap,是JDK自带的反汇编工具,用于将Java字节码文件反汇编为Java源代码。

javap的用法如下:

用法: javap <options> <classes>
可能的选项包括:
  -help  --help  -?        打印用法信息
  -version                 版本信息
  -v  -verbose             打印附加信息
  -l                       打印行号和本地变量表
  -public                  仅显示public类和成员
  -protected               显示protected/public类和成员
  -package                 显示package/protected/public类和成员(默认值)
  -p  -private             显示所有的类和成员
  -c                       反汇编代码
  -s                       打印内部类型签名
  -sysinfo                 显示将被处理的类的系统信息(路径,大小,日期,MD5 哈希值)
  -constants               显示static final常量
  -classpath <path>        指定查找用户类文件的位置
  -bootclasspath <path>    覆盖由引导类加载器所加载的类文件的位置

我们通常以如下形式使用javap:

1、不带任何可选参数(如果字节码文件就位于当前工作目录,可以不写类的包名):

#实际上等同于javap -package Person
javap Person

2、反汇编指定目录下的字节码文件:

javap -classpath D:/java/lib cn.softown.Person
3、反汇编字节码文件为JVM可以识别、执行的字节码命令:
javap -c Person
以下是可选参数的详细说明:
-classpath <pathlist>
手动指定用户class字节码文件的存放目录,javap程序将在此目录下查找class文件,多个路径以英文分号分隔。例如:javap -classpath D:\java\test Person(即使DOS窗口的当前工作目录为其他任意路径,该命令均可正确执行)。
-s
打印变量的内部类型签名,例如:javap -classpath D:\java\test -s Person
-extdirs <dirs>
指定javap搜索已安装的java扩展的位置,默认的java扩展的位置为jre\lib\ext。例如:javap -classpath D:\java\test -extdirs D:\java\myext Person
-bootclasspath <pathlist>
指定使用Java底层类加载器(bootstrap class loader)加载的字节码文件的位置。例如:javap -classpath D:\java\test -bootclasspath D:\java\core Person
-verbose
打印方法参数和本地变量的数量以及栈区大小。
-J<flag>
传递运行时标识参数给javap,例如javap -J-version,可以有多个命令,中间以空格隔开。

作者:软件指南针(http://www.softown.cn),转载请保留出处!

用户评论

使用指南 故障排除 0 返回顶部