首页 > 代码库 > eclipse中使用javap工具小结

eclipse中使用javap工具小结

关于javap的功能,百度百科上是这么解释的:

javap

javap是jdk自带的一个工具,可以反编译,也可以查看java编译器生成的字节码,是分析代码的一个好工具。

简单明了,大多时候真正的开发环境为linux系统,但是在windows下开发的时候又不习惯dos窗口的化,eclipse为我们提供了

javap的详细使用:

我们能够在eclipse中使用javap工具,我们有必要了解一下在eclipse中的Variables这个东西.这个英文单词的意思是变量集合的意思,意思就是我们以某些简短的变量名来替代在eclipse中的各种工具的真实路径.

因为eclipse的Variables非常之多,而我又懒得翻译,因此提前下载了一个eclipse,并且对其进行了汉化处理,如果不清楚怎么汉化的话,可以参考这篇文章:

Eclipse的汉化:Eclipse的汉化步骤

进入到eclipse后,我们点击外部工具,就在我们运行java程序按钮的旁边,或者通过菜单栏上的run选项进入External tool中并选择External tool configuration ,进入到设置javap的页面:如下图:


双击左侧的程序,就进入到设置的页面了,

我们在位置(location)的地方通过本地文件系统浏览方式进入到我们安装的JDK路径下(安装默认路径是C:\Program Files\Java\jdk1.7.0_17\bin\javap.exe),这样我们就可以在eclipse中使用javap了,但是我们必须要设置工作目录(working directory)和参数(Arguments)

在设置这两项选项之前,我们先对右侧的变量(Variables)进行说明,这样我们就对eclipse是如何管理我们的工程有一个了解.我们选中Variables后

会出现一系列的英语单词,如下图:


下面就对这些英语单词进行说明,如果不想继续看下面的内容,可以自己去尝试翻译下面的变量描述(Variables descriptions),我是比较懒的人英语也不好,就直接通过link方式将eclipse进行汉化,直接将别人翻译好的内容搬弄过来,下面是其参数解释:

1.${build_files}

   返回其修改导致了当前构建的绝对文件系统路径的集合。可将一系列的字符(“a”表示增加(added),“c”表示更改(changed),“r”表示除去(removed),“f”表示仅限文件(files only),“d”表示仅限目录(directories only))作为自变量来提供,以使文件列表仅包含特定类型的变化量。缺省为包含全部变化量。

2.${build_project}

返回其修改导致了当前构建的绝对文件系统路径的集合。可将一系列的字符(“a”表示增加(added),“c”表示更改(changed),“r”表示除去(removed),“f”表示仅限文件(files only),“d”表示仅限目录(directories only))作为自变量来提供,以使文件列表仅包含特定类型的变化量。缺省为包含全部变化量。

3.${build_type}

返回正在执行的构建的类型:“增量”、“完全”、“自动”或“无”。

4.${container_loc}

返回资源的容器的绝对文件系统路径。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

5.${container_name}

返回资源的容器的名称。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

6.${container_path}

返回资源的容器的工作空间相对路径。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

7.${current_date}

返回当前系统的时间,格式为yyyyMMdd_HHmm。可使用可选声明来规定其他的格式。格式必须是java.util.SimpleDateFormat的有效形式。

8.${eclipse_home}

运行中的平台的基本安装位置

9.${env_var}

返回环境变量的值。必须将环境变量名指定为自变量。

10.${file_prompt}

返回在“选择文件”对话框中选择的文件的绝对文件系统路径。当提供一个自变量时,使用它作为对话框标题上的提示。当提供第二个自变量时,使用它作为“选择文件”对话框的初始值。第一个自变量和第二个自变量必须以“:”分隔。

11.${folder_prompt}

返回在“选择目录”对话框中选择的目录的绝对文件系统路径。当提供一个自变量时,使用它作为对话框标题上的提示。当提供第二个自变量时,使用它作为“选择目录”对话框的初始值。第一个自变量和第二个自变量必须以“:”分隔。

12.${java_extensions_regex}

与已注册的类似于 Java 的文件扩展名相匹配的正则表达式

13.${java_type_name}

返回所选资源中主类型的标准 Java 类型名。

14.${project_classpath}

返回该工程的系统路径

15.${project_loc}

返回资源的项目的绝对文件系统路径。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

16.${project_name}

返回资源的项目的名称。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

17.${project_path}

返回资源的项目的工作空间相对路径。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

18.${resource_loc}

返回资源的绝对文件系统路径。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

19.${resource_name}

返回资源的名称。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

20.${resource_path}

返回资源的工作空间相对路径。当没有指定自变量时,目标资源就是选择的资源,否则目标资源是由工作空间相对路径标识的资源。

21.${selected_resource_loc}

返回选择的资源的工作空间的文件系统绝对路径

22.${selected_resource_name}

返回选择的资源的名称

23.${selected_resource_path}

返回选择的资源的工作空间的相对路径

24.${selected_text}

返回活动编辑器中当前选择的文本。

26.${system}

返回 Eclipse 系统变量的值。必须将变量名指定为自变量 - 下列其中一个值:ARCH、ECLIPSE_HOME、NL、OS 或 WS。

27.${system_path}

返回外部文件的绝对文件系统路径。通过根据指定的系统路径来查找第一个出现的指定工具来解决。必须将工具名称作为自变量来提供。

28.${system_property}

从 Eclipse 运行时返回系统属性的值。系统属性名必须作为自变量指定。

29.${workspace_loc}

返回工作空间根目录的绝对文件系统路径。当指定了自变量时,返回由工作空间相对路径标识的资源的绝对文件系统路径。

上述基本上是所有的变量描述(Variables descriptions),请注意标记为绿色的选项,是我们需要使用到的Variables.

我们上述已经说明了需要配置2个地方,第一个为工作目录,就是我们创建的工程目录下,可以利用${workspace_loc}/${project_name}来表示,

在至于路径分隔符,可以选择‘\‘也可以选择‘/‘,都是可以的.第二个设置就是我们的参数设置,就是我们需要进行javap分解的class文件,可以利用${workspace_loc}/${project_name}/bin/${java_type_name},请注意我们必须在中间加上一个bin目录,这是因为eclipse会将我们的java文件编译到该目录下,但是在Variables 中却没有表示该目录的变量,因此只能手工添加,下面是我的配置图:


如果你是第一次进行配置,请最好看完下面的说明,也许第一运行的时候会出现下面的错误:


那么请你在运行javap的时候一定要选择好你要javap的java文件,意思就是你要分解的java文件必须被选择上,如下图:


然后再点击运行javap,则会顺利出现下面分解好的class文件: