linux卸载asm,ubuntu环境asmtools安装及使用

本文介绍了在Ubuntu系统中如何安装Apache Ant,然后通过Mercurial下载并构建asmtools工具。详细步骤包括配置环境变量、执行Ant命令以及使用asmtools进行Java字节码的反汇编和修改,展示了如何将布尔值iconst_1替换为iconst_2,并对比了修改前后的执行结果。
摘要由CSDN通过智能技术生成

asmtools是openjdk提供的java字节码汇编及反汇编工具,学习JVM时需要的工具,下面是这个工具的安装及使用过程

一、环境

系统-Ubuntu 16.04.4

JDK version 8.0

Ant version 1.8 or later

参考文档 https://wiki.openjdk.java.net/display/CodeTools/How+to+build+AsmTools

39174b5f544b

image.png

#安装包位置

cd /usr/local

#解压

tar -zxvf apache-ant-1.9.14-bin.tar.gz

#配置环境变量

vim /etc/profile

#添加如下地址

export PATH=/usr/local/apache-ant-1.9.14/bin:$PATH

#保存退出刷新配置

:wq

source /etc/profile

#执行ant命令看是否

ant

三、asmtools工具下载

#安装hg工具

apt install mercurial

#拉去asmtools工具

hg clone http://hg.openjdk.java.net/code-tools/asmtools

#构建asmtools.jar

cd /asmtools/build

ant

#此时asmtools根目录出现asmtools-7.0-build文件夹

四、使用asmtools修改java字节码

#创建Foo.java文件

echo '

public class Foo {

public static void main () {

boolean flag = true;

if(flag) System.out.println("Hello,Java!");

if(flag == true) System.out.println("Hello,JVM!");

}

}' > Foo.java

#编译Foo.java 编译后的Foo.class 要放在classpath环境变量路径下

javac Foo.java

#执行Foo.class

java Foo

#使用asmtools修改字节码

java -jar /home/yaozun/asmtools-7.0-build/release/lib/asmtools.jar jdis Foo.class > Foo.jasm.1

awk 'NR==1,/iconst_1/{sub(/iconst_1/, "iconst_2")} 1' Foo.jasm.1 > Foo.jasm

java -jar /home/yaozun/asmtools-7.0-build/release/lib/asmtools.jar jasm Foo.jasm

两次执行结果如图所示

39174b5f544b

image.png

39174b5f544b

image.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值