赞
踩
本文介绍如何利用Eclipse插件Bytecode Outline在Eclipse中的操作使用。
Eclipse是目前非常流行的开发平台,开放扩展的架构让很多程序员找到了自己个性化的工作环境。
Bytecode Outline 插件可以把当前的正在编辑Java的文件或者class文件直接显示出其相应的字节码出来,而且可以进行两个Java文件的字节码比较或者两个class文件的字节码比较或一个Java文件与一个class文件进行字节码的比较。
JDK:1.5.0 从http://java.sun.com 上去下载安装
Eclipse:3.1.1 从http://www.eclipse.org 上去下载解压
Bytecode Outline 主页http://asm.objectweb.org/eclipse/bco/index.html
Eclipse使用技巧之插件管理
提示:新下载的插件PlugIn一定不要都放在原始的Eclipse目录下去,一大堆,累死你:(
比如:E:/OpenSource/Eclipse/PlugInsNew/
%ECLIPSE_HOME%/PlugInsNew/XYZ/eclipse/features
%ECLIPSE_HOME%/PlugInsNew/ XYZ/eclipse/plugins
Bytecode Outline插件安装方法有两种方式:
Help => Software Updates => Find and Install…
选择Search for new features to install,下一步
新建一个站点,New Remote Site =>
Name里填入Bytecode Outline
URL里填入http://download.forge.objectweb.org/eclipse-update/
OK后,Finish完成之
于是出现这个站点的相关插件,对于Bytecode Outline来说,仅需要asm和bytecode-outline两项即可,当然把jonas-dev和org-exoplatform-eclipse-plugins也弄下来用用也不错的,全选上(^_^)
接下来就是接受协议并下一步了
出现安装的路径选择,点击Change Location …更改你的Plugin安装路径,最好同上面所说的新的插件分开路径进行安装,于是就可以选择在PlugInsNew目录下的bytecode/eclipse来进行存放它了。
四项内容,每个都要进行Change Location…,赫赫,比较麻烦了些,不过要是为了分开进行存放,你可以四个都存放到不一样的路径当中去,但是都要建立Link文件。
下载完成后,提示你安装,选择安装所有Install All。
顺利安装完成,出现重启提示。
注意:在点Yes之前,如果你刚才选择的路径不是默认的Eclipse插件的安装路径,你还是要建立一下Link文件!!!
重新启动Eclipse后,可以在菜单Window => Show View => Other => Java => 可以看到多了Bytecode、Bytecode Reference两项,把这两项打开显示出来。
我们简单地创建一个示例工程,里面包含有一个接口类与两个实现该接口的实现类进行演示说明使用的方法。
接口类:IHelloWorld.java public interface IHelloWorld { String sayHelloWorld(); } 实现类一:HelloWorld1.java public class HelloWorld1 implements IHelloWorld { public HelloWorld1() { super(); } public String sayHelloWorld() { return "Hello World HelloWorld1"; } } 实现类二:HelloWorld2.java public class HelloWorld2 implements IHelloWorld { public HelloWorld2() { super(); } public String sayHelloWorld() { return "Hello World HelloWorld2"; } }
双击打开IHelloWorld.java文件,在Bytecode窗口中可以看到如下信息:
当光标定位在sayHelloWorld上面,则Bytecode内容相应地进行改变。
点击ASM图标可以在true bytecode和ASMifier Java code 视图间进行切换
当光标定位在sayHelloWorld上面,则Bytecode内容相应地进行改变。
选中Link With Editor图标,当Java编辑器中当前的Java文件改变时,Bytecode里的内容会跟随着进行改变,方便进行查看。
选中Show bytecode for current field/method only图标,当Java编辑器中当前的Java文件定位在某个域或方法时,则仅显示域或方法的字节码,方便进行查看,如下图仅定位在sayHelloWorld方法上,仅显示这个方法的相关信息。
选中时,会把相关的附加信息也显示,比如下面的String,就会把java.lang包名都显示出来了。
这些开关也可以通过下拉菜单来进行切换与设置,一样的操作方法。
选中图标,可以切换到字节码的指令集视图上面来,当光标定位到不同的上面就会同样定位到相应的指令上,同样,在指令上面点击,相应地会定位到指令所对应的代码上去。
比较两个Java代码的字节码
相异之处特殊显示出来,以供查看。
切换到ASM视图进行比较
比较两个class代码的字节码
比较一个Java文件和一个class文件的字节码
选择比较其它的Java或class文件进行比较
选择文件
附带的JVM指令参考JVM Instruction Reference,有比较详细的资料说明。
Help => Help Contents => JVM Instruction Reference
更多的使用方法可以参阅: http://andrei.gmxhome.de/bytecode/index.html
这是一个很不错的学习编译、反编译、字节码的工具。
作者简介 | |
dev2dev ID: YuLimin, BEA dev2dev论坛Web Application Development版版主。 主页:http://202.101.111.1/123/ 博客:http://iAMin.BlogDriver.com |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。