java aspectj_Java逆向基础之AspectJ的ajc与aj5命令

acj命令是用于编译java文件和aj文件的编译器,相当于eclipse的编译器(ECJ)+aspectj运行时扩展

aj5命令在jdk1.5上使用-javaagent:pathto/aspectjweaver.jar加载aspectj程序,达到修改字节码的目的

这两个命令可以用java命令和javac来替代,我们以上文的命令为例

Load-time weaving (LTW) 加载时编织

编译ajc -outjar myjar.jar HelloWorld.java

ajc -outjar MyAspect.jar -outxml MyAspect.aj  -classpath "myjar.jar;%CLASSPATH%"

运行aj5 -classpath "MyAspect.jar;myjar.jar;%CLASSPATH%" HelloWorld

命令翻译

若已经在classpath环境变量里设置过aspectjrt.jar,可在 -classpath里省略%ASPECTJ_HOME%\lib\aspectjrt.jar;下同

编译javac HelloWorld.java

jar cvf myjar.jar HelloWorld.class

java -classpath "myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%ASPECTJ_HOME%\lib\aspectjtools.jar;%CLASSPATH%" org.aspectj.tools.ajc.Main -outxml MyAspect.aj -outjar MyAspect.jar

运行java -javaagent:%ASPECTJ_HOME%\lib\aspectjweaver.jar -classpath "MyAspect.jar;myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%CLASSPATH%" HelloWorld

Compile-time weaving 编译时编织

编译ajc -outjar mytarget.jar HelloWorld.java MyAspect.aj

运行aj5 -classpath "mytarget.jar;%CLASSPATH%" HelloWorld

命令翻译

编译java -classpath "myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%ASPECTJ_HOME%\lib\aspectjtools.jar;%CLASSPATH%" org.aspectj.tools.ajc.Main -outjar mytarget.jar HelloWorld.java MyAspect.aj

运行java -classpath "mytarget.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%CLASSPATH%" HelloWorld

Post-compile weaving 后编译时编织

编译ajc -outjar myjar.jar HelloWorld.java

ajc -inpath myjar.jar MyAspect.aj -outjar mytarget.jar

运行aj5 -classpath "mytarget.jar;%CLASSPATH%" HelloWorld

命令翻译

编译javac HelloWorld.java

jar cvf myjar.jar HelloWorld.class

java -classpath "myjar.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%ASPECTJ_HOME%\lib\aspectjtools.jar;%CLASSPATH%" org.aspectj.tools.ajc.Main -inpath myjar.jar MyAspect.aj -outjar mytarget.jar

运行java -classpath "mytarget.jar;%ASPECTJ_HOME%\lib\aspectjrt.jar;%CLASSPATH%" HelloWorld

翻译成java命令的好处是,可以在Load-time weaving (LTW) 加载时编织直接指定多个-javaagent

如java -javaagent:aspectjweaver.jar -javaagent:ZKMAgent.jar -cp Tracing.jar;ZKM.jar com.zelix.ZKM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值