基于ajc的代码编织

基于ajc的代码编织

示例采用AspcetJ安装目录下的/doc/examples/tracing

   1.  将aspect编织进java源代码

  1)cd example  切到example目录下

  2)ajc -argfile tracing\tracelib.lst -outjar tracelib.jar 编译生成一个只读的aspect库

  3)ajc –aspectpath tracelib.jar –argfile tracing\notrace.lst –outjar tracedapp.jar 将aspect库编织进        notrace.lst中指定的所有文件的代码中,并最终得到一个编织了aspect的程序。

  4)java -classpath "$ajrt;tracedapp.jar;tracelib.jar" tracing.ExampleMain 运行编织了的应用程序,需要包含库   aspcetjtools.jar(位于AspectJ的lib目录下)、tracelib.jar(刚用于编织应用程序的aspect库)、tracedapp.jar(经过编织的应用程序)。

   2.  将aspect编织进java字节码

  1)  cd example

  2)  编译生成应用程序的类文件

    a)  mkdir appclasses 创建一个名为appclasses的文件夹

    b)  javac –d appclasses tracing\*.java 编译所有需要的java文件,并将生成的字节码.class文件放在       appclasses目录下

    c)  jar cfM app.jar –C classes . 将classes目录下所有的class文件打包成app.jar

  3)  将aspect库编织到2)中生成的类库中

  ajc –inpath app.jar –aspectpath tracelib.jar –outjar tracedapp.jar

  4)  运行程序

    a) 运行编织了aspect的程序

    java -classpath "$ajrt;tracedapp.jar;tracelib.jar" tracing.ExampleMain

    b) 运行未经编织的程序

    java -classpath app.jar tracing.ExampleMain

 

细节参考:http://www.eclipse.org/aspectj/doc/next/devguide/ajc-ref.html

posted @ 2011-11-22 16:24  zztian  阅读(332)  评论(0编辑  收藏  举报