如何从Java运行ajc?

时间:2013-04-02 19:25:02

标签: java aspectj

我正在尝试从Java运行ajc编译器(而不是从Maven或Ant运行!)。问题是我需要哪个Maven依赖项以及哪个类是入口点?我现在拥有的最佳选择是来自org.aspectj.tools.ajc.Main的{​​{1}}。我是对的吗?

1 个答案:

答案 0 :(得分:4)

是。在Java项目中,类路径上需要aspectjrt.jar(对于运行时)和aspectjtools.jar(对于编译器)。然后,您可以构建一个AspectJ项目并创建一个包含方面和类的JAR文件,如下所示:

import org.aspectj.tools.ajc.Main;

public class AjcRunner {
    public static void main(String[] args) throws Exception {
        String[] ajcArgs = {
            "-sourceroots", "c:\\my\\aspectj_project\\src",
            "-outjar", "my_aspects.jar"
        };
        Main.main(ajcArgs);
    }
}

之后你可以像这样在控制台上测试结果,假设你有一个Applicationmain的课程:

java -cp C:\path\to\aspectjrt.jar;my_aspects.jar Application