Java 将方面编织到可执行jar并运行它

Java 将方面编织到可执行jar并运行它,java,aspectj,load-time-weaving,Java,Aspectj,Load Time Weaving,我编写了一个方面,在任何方法调用任何其他方法时打印有关该方法的详细信息。我想排除java库 我正在尝试将方面编织到jAR文件中,然后执行jAR 我在漫长的学习中苦苦挣扎,阅读了很多教程,但无法完成任务 下面是方面的代码 import org.aspectj.lang.Signature; public aspect MethodCallProfile { pointcut tracedCall() : call (* *(..)) && ! within(Metho

我编写了一个方面,在任何方法调用任何其他方法时打印有关该方法的详细信息。我想排除java库

我正在尝试将方面编织到jAR文件中,然后执行jAR

我在漫长的学习中苦苦挣扎,阅读了很多教程,但无法完成任务

下面是方面的代码

import org.aspectj.lang.Signature;


public aspect MethodCallProfile {

    pointcut tracedCall() : call (* *(..)) && ! within(MethodCallProfile)  ;

    pointcut exclude() : execution(* java*(..)) && !within(MethodCallProfile)  ;
    before() : tracedCall() && exclude() {
        Signature sig = thisJoinPointStaticPart.getSignature();
        String line = ""
                + thisJoinPointStaticPart.getSourceLocation().getLine();

        String sourceName = thisJoinPointStaticPart.getSourceLocation()
                .getWithinType().getCanonicalName();
        //
        System.out.println("Call from " + sourceName + " line " + line + "\n   to "
                + sig.getDeclaringTypeName() + "." + sig.getName() +"\n");
    }

}
我用来生成编织罐的命令

ajc -injars dacapo-9.12-bach.jar aspects/MethodCallProfile.aj -outjar weaved_aspect.jar -classpath "aspectjrt.jar" -Xlintfile ajc.properties
命令我试图执行编织罐

aj -cp .;;d:\dacapo\lib\aspectjweaver.jar -jar weaved_dacapo.jar avrora

java -cp d:\dacapo\lib\aspectjrt.jar;d:\dacapo\lib\aspectjtools.jar;d:\dacapo\lib\aspectjweaver.jar;d:\dacapo\lib\org.aspectj.matcher.jar -jar weaved_dacapo.jar avrora
错误

属性文件(因为当它找不到某些类型时,我遇到了错误

cantFindType = warning

我的问题解决了。我在aspect1.8目录中读取了自述文件,并按照步骤进行了操作

我将
aspectjrt.jar
复制到
jdk/jre/lib/ext
目录,并将
aspectjrt.jar
添加到我的CLASSPATH环境变量中


编译时,我添加了-cp.

请使用问题上的编辑链接添加其他信息。回答后按钮应仅用于问题的完整答案。-我添加了它作为答案,因为这解决了我的问题。现在我可以编译并执行代码。很抱歉,您的答案看起来像是问题上的其他信息。你能告诉我你的答案,并更清楚地说明你所做的事情解决了你的问题吗?
cantFindType = warning