查看java代码对应汇编代码
环境:
jdk10
Ubuntu16.04
1、编译java代码
javac HelloWorld
2、下载 hsdis-amd64插件
值得注意的 是linux平台下的插件为hsdis-amd64.so,windows下为dll,ios下为dylib hsdis下载链接
下载之后保存到/lib/目录下
3、反编译
java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly HelloWorld > HelloWorld.asm
4、异常
查看HelloWorld.asm文件,
若头部包含如下错误信息
Could not load hsdis-amd64.so; library not loadable; PrintAssembly is disabled
修改/etc/profile文件,指定lib目录
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/root/native
修改完之后
source /etc/profile
重新运行反编译命令即可
编者按
此次反编译过程中发现:jdk10目录下居然没有jre???What the fuck???