四种方式查看Java字节码(IDE使用IDEA)
在深入分析Java代码时往往需要分析Java字节码,从Java字节码带给我们更多的设计细节,了解底层原理。以下四种方式能够快速的让我们食用Java字节码。
使用javap -v class名称
直接在命令行使用
无需下载任何其他插件,直接可以使用。
如图,查看了一个Spring Boot的入口类GreenaApplication.class的字节码
在IDEA的命令行使用
很多时候能在IDEA中解决的,切换一个页面多麻烦,尤其是CMD有些不大友好的体验,直接使用IDEA的Terminal.
效果如下
使用IDEA的External Tools快捷食用
都已经在IDEA中了。每次要找到对应文件,然后在访问Terminal效率还是太低。直接配置一个External Tools,方便快捷。
配置External Tool 路径:File->Setting->Tools->External Tools 点击绿色+添加
配置External Tools,这块一定要注意
- 1.一定要 $FileName$,不要使用FileClass,FileClass会带有包名,执行javap -v命令后,会找不到对应的文件
- 2.最好指定Working directory为当前路径即$FileDir$,防止扫描不必要的class导致class文件确认的错误。
一般配置了JAVA_HOME以及PATH的在Program中直接 写入javap 就可以了。如果没有配置,请直接选中…选择javap.exe。
-v写在Program 或者Arguments 区别不大。
配置好以后效果如下
点击查看字节码,机会看到我们在IDEA的Terminal执行的效果了。
IDEA自带插件Show Bytecode
代码执行以后,在View->找到Show Bytecode即可看到字节码。IDEA插件生成的字节码更具有可读性,推荐使用。
效果如下
使用JBE - Java Bytecode Editor
JBE不仅仅可以查看字节码,还可以修改字节码。
下载地址
效果如下1
使用jclasslib
jclasslib查看字节码。jclasslib还有很多其他功能,比如修改字节码。平时使用IDEA时,更多的是使用IDEA插件。也可以使用jclasslib客户端
IDEA安装jclasslib路径如图。
安装成功后,执行某代码后。选择 View->Show Bytecode With jclasslib。则会出现如下图效果。不得不说就查看字节码这块,jclasslib插件还是更好 ,更值得推荐使用。
图片来自http://set.ee/jbe/ ↩︎