我正在尝试从 Java(而不是从 Maven 或 Ant!)运行 ajc
编译器。问题是我需要哪个 Maven 依赖项以及哪个类是入口点?我现在最好的选择是来自 org.aspectj:aspectjtools:1.7.2
的 org.aspectj.tools.ajc.Main
。我说得对吗?
最佳答案
是的。在您的 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);
}
}
之后,您可以像这样在控制台上测试结果,假设您有一个带有 main
方法的类 Application
:
java -cp C:\path\to\aspectjrt.jar;my_aspects.jar Application
关于java - 如何从 Java 运行 ajc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15772614/