本文介绍如何利用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目录下去,一大堆,累死你:(
- 前提是你已经安装好了Eclipse工具了,比如安装在E:/OpenSource/Eclipse/目录下,以下这个目录以%ECLIPSE_HOME%来进行表示;
- 此时默认的插件是在%ECLIPSE_HOME%/plugins目录中的;
- 在%ECLIPSE_HOME%下建立一个PlugInsNew的目录;
比如:E:/OpenSource/Eclipse/PlugInsNew/
- 你下载了个新的插件,比如叫做:XYZ 那么就在%ECLIPSE_HOME%/PlugInsNew/目录下建立XYZ目录,目录里面是eclipse目录,eclipse目录包含有features与plugins两个子目录;结构如下图所示:

- 把下载的新插件的文件放在以下相应目录中
%ECLIPSE_HOME%/PlugInsNew/XYZ/eclipse/features
%ECLIPSE_HOME%/PlugInsNew/ XYZ/eclipse/plugins
- 建立相关的.link的文件
然后在%ECLIPSE_HOME%/links目录里建立一个XYZ.link的文件
内容如是:path=E:/OpenSource/Eclipse/PlugInsNew/XYZ就一行这样的路径指示而已。
这样,如果你下载了多个插件就可以如法炮制建立多个Link文件,想加载哪个插件就把哪个插件的Link文件放到%ECLIPSE_HOME%/links的目录中即可,使用与管理都很方便,建议千万不要放在默认的安装目录中;
如果你的%ECLIPSE_HOME%与此不同,请修改XYZ.link文件里的路径
- 删除,关闭Eclipse
删除%ECLIPSE_HOME%/links/XYZ.link文件即可
删除%ECLIPSE_HOME%/PlugInsNew/XYZ整个目录及文件
- 重新启动Eclipse即可
安装细节
Bytecode Outline插件安装方法有两种方式:
新建一个站点,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
总结
这是一个很不错的学习编译、反编译、字节码的工具。
<!--文章其他信息-->
作者其它文章
分享到:
相关推荐
Bytecode Outline是一款强大的Eclipse插件,专门用于帮助Java开发者可视化和分析类文件中的字节码。这款插件使得理解程序在JVM级别上的运行方式变得更加直观和简单,尤其对于那些进行性能优化、逆向工程或者对Java...
这里推荐一个工具,Bytecode Outline .它是Eclipse的插件,可以把当前的正在编辑Java的文件或者class文件直接显示出其相应的字节码出来,而且可以进行两个Java文件的字节码比较或者两个class文件的字节码比较或一个...
下载后先解压!里面有2个版本的安装包!下载后先解压!下载后先解压!可以尝试在https://plugins.jetbrains.com/search?products=idea&search=Bytecode Outline下面搜“Bytecode Outline
这里推荐一个工具,Bytecode Outline,它是Eclipse的插件,可以把当前的正在编辑Java的文件或者class文件直接显示出其相应的字节码出来,而且有字节码中命令的说明,具体的安装跟用法压缩包中有。
- ASMifier & Bytecode Outline:字节码分析和可视化插件,更新地址:`http://download.forge.objectweb.org/eclipse-update/` - FreeMarker:模板引擎插件,更新地址:`...
Eclipse的内置功能并不包括查看.class字节码,但可以通过安装" jclasslib Bytecode Viewer"插件来实现。jclasslib提供了一个直观的图形界面,用于浏览和分析Java字节码。它能够显示类的结构,如常量池、字段、方法...
### Eclipse安装反编译插件详细步骤 #### 一、前言 Eclipse是一款非常流行的开源集成开发环境(IDE),广泛应用于Java等编程语言的软件开发。为了更好地理解和调试代码,有时我们需要对编译后的字节码进行反编译。...
安装插件后,当您在Eclipse中右键点击一个`.class`文件时,将会看到“Open With”菜单中多了“JD-Bytecode View”选项。选择该选项,就可以查看对应的源代码了。 4. **其他相关文件**: - `LICENSE`:包含插件的...
- **ASM Bytecode Outline**:展示Java或class文件的二进制代码,方便二进制比较。 这些插件的选择和使用取决于开发者的需求和项目特性。了解并熟练使用这些工具,将显著提升开发效率,减少错误,优化代码质量,使...
ASM BYTECODE OUTLINE插件是针对Android Studio的一款实用工具,主要功能是帮助开发者直观地查看和理解Java字节码。ASM是一个轻量级的Java字节码操控和分析框架,它可以直接用来动态生成和修改类或者作为其他代码...
不过,Eclipse也有一些插件可以实现类似的功能,例如" jclasslib bytecode viewer "和"Decompile Plugin"。 首先,让我们详细了解一下这两个插件: 1. **jclasslib bytecode viewer**:这是一个强大的字节码查看器...
首先,为了便于分析和调试字节码,作者推荐安装Eclipse的Bytecode Outline插件,该插件可以从"http://andrei.gmxhome.de/eclipse/"获取。在Eclipse 3.7版本中,安装插件后重启,可以通过Window -> Show View -> ...
为了查看Java字节码,你可以使用Eclipse集成开发环境中的反编译工具,如“Java byte code viewer”插件。这个插件允许开发者查看类文件的字节码,理解方法的底层实现,这对于调试、优化代码以及学习JVM的工作原理...
AndroidStuido的插件ASM Bytecode Viewer用于展示kotlin/java的字节码,因为AndroidStudio的market经常打不开,现在提供离线包。 安装: File-Settings-Plugins,点击设置按钮,选择“Install Plugin from Disk...”...
一、搜索插件 二、快捷开发系列 ❶CodeGlance:代码缩略图 ❷GenerateAllSetter:快速生成对象所有set方法 ❸camelCase:字母大小写各种类型转换 ...❺ASM Bytecode Outline:查看字节码 ❻ID
在Java编程领域,理解字节码是提升编程技能的关键步骤之一。字节码是Java平台中的二进制中间语言,它在Java虚拟机(JVM)上运行。而jclasslib字节码查看器,作为一款强大的工具,为我们提供了深入解析Java类文件和...
3.2 使用 Bytecode Outline 直接查看字节码... 45 3.3 使用Implementors 跟踪接口的实现类... 52 3.4 使用CAP 进行代码分析... 54 3.5 使用 Easy Explorer 快速查看文件夹... 56 第2篇 Web开发技术实例...
CJBE-Continued Java Bytecode Editor (继续java字节码编辑器), 一种修改和分析java字节码结构和类文件的有效工具, 它是JBE-Java Bytecode Editor 0.1 升级版. 履历简介: 1.原始Jclasslib bytecode viewer 3.0字节...
Java Bytecode Editor是修改和分析java字节码结构和类文件的有效工具:下载解压后,双击jbe. bat(Windows)或jbe.sh(Linux)即可运行JBE。src目录下的是JBE的源码。