深入理解Java虚拟机 – 阅读class文件的三种姿势(连载2)

对于熟悉Java程序语言的人来说,JVM(Java Virtual Machine)是实现语言无关性的基石,被JVM所识别的.class文件是实现平台无关性的基石。这一点的具体信息可参考

深入理解Java虚拟机 –类文件结构 阅读笔记(连载1) 无关性基石

.class文件中包含了被虚拟机所识别的字节码指令,看懂字节码指令是迈向高级架构师的一小步(不积跬步无以至千里)。本文将介绍几种如何查看class文件字节码指令的方法。

.class文件中存的是被JVM识别的16进制数,这些16进制数与字节码指令的关系如下(附Java虚拟机规范官方文档)

阅读class文件的三种姿势(干货)

.class中的每一个16进制数都在Java虚拟机规范中能找到对应的字节码指令信息。

附Java虚拟机规范官方文档:https://docs.oracle.com/javase/specs/


Notepad++(HEX-Editor插件)法

首先官网下载Notepad++: https://notepad-plus.en.softonic.com/

【添加notepad++到鼠标右键快捷菜单方法】: 

直接打开class文件是这样的(乱码)

阅读class文件的三种姿势(干货)

依次点击 Plugins — Plugins Admin…

阅读class文件的三种姿势(干货)

搜索 HEX-Editor, 勾选并安装插件

阅读class文件的三种姿势(干货)

插件安装完毕后,界面顶部右侧会出现 H 标志,表明安装成功,此时点击H 即可以16进制的方式转换.class文件

阅读class文件的三种姿势(干货)


IDE(idea、eclipse)插件法(墙裂推荐)

对于集成在开发环境中的插件来说更容易的阅读字节码,并且扩展内容更丰富

IntelliJ IDEA (jclasslib)

首先安装插件jclasslib

阅读class文件的三种姿势(干货)

安装完毕后,任意打开一个.java文件,然后依次点击 View — Show Bytecode With Jclasslib

阅读class文件的三种姿势(干货)

找到如下位置,即可看到当前java文件的字节码指令(如同javap反编译一样)

阅读class文件的三种姿势(干货)


Eclipse( JBC)

打开eclipse  依次点击Help — Eclipse Marketplace…, 出现如下弹框,搜索JBC:

阅读class文件的三种姿势(干货)

安装完成后重启Eclipse,找到任以java文件,右击以 Open JBC方式打开

阅读class文件的三种姿势(干货)

打开后即可看到对应java文件的字节码指令信息

阅读class文件的三种姿势(干货)


Binary Viewer

这是一款查看二进制的软件工具,对于自身是16进制的也会识别,并且文件的信息量比Notepad++打开的class文件信息量更丰富

官网下载地址:https://binary-viewer.en.softonic.com/

阅读class文件的三种姿势(干货)


以上就是三种常见查看字节码指令的方法,平时最常用的是结合IED一起使用的方法

更多精彩内容请关注公众号:Java岛

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

bearx...

请作者喝杯咖啡

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值