当前位置: 首页 > 知识库问答 >
问题:

是否有任何东西可以添加到java buildpath中,以便在运行项目时编织方面?

邵昆琦
2023-03-14

我有一个类MakeRedAspect在我的项目,使红色我的消息:

import java.awt.Color;

import javax.swing.JLabel;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;

@Aspect
public class MakeRedAspect {
    @Pointcut("execution(static javax.swing.JLabel[] createMultiLabel(..))")
    public void multilabelCreation() {}

    @Around("multilabelCreation()")
    public JLabel[] changeLabelColours(ProceedingJoinPoint thisJoinPoint) throws Throwable {
        JLabel[] labels = (JLabel[]) thisJoinPoint.proceed();
        for (JLabel label : labels)
            label.setForeground(Color.RED);
        return labels;
    }
}

我也添加了在我的项目中使用aspectj所需的库,并且我也在META-INF/aop.xml类中添加了类的名称(我认为这两个足以使用方面类):

<aspectj>
    <aspects>

        <aspect name="mehad.aspect.general.I18N"/>
         <aspect name="mehad.aspect.general.MakeRedAspect"/>
        <aspect name="mehad.aspect.general.AspSwingWorkerExecution"/>
        <aspect name="mehad.aspect.general.RetryAspect"/>
        <aspect name="mehad.aspect.general.AspWatchScriptExecution"/>

        <!-- <aspect name="mehad.aspect.simulink.AspWatchPort"/>-->
        <!--<aspect name="mehad.aspect.simulink.AspScannerManager"/>
        <aspect name="mehad.aspect.simulink.AspComportInterface"/>
        <aspect name="mehad.aspect.simulink.AspHeaderIcon"/>
        <aspect name="mehad.aspect.simulink.AspFileUtil"/>-->

</aspects>

<!--
    <weaver options="-verbose">
    </weaver>
-->
</aspectj>

但它并没有使我的消息变红,而且看起来我的方面不起作用。我记得以前它工作得很好,我想我在java构建路径中添加了一些东西,在我的步骤中,还有什么方面没有发挥作用?

共有1个答案

西门飞星
2023-03-14

看起来您想要使用加载时编织(LTW)。为了启用LTW,您需要在Java命令行上有AspectJ编织代理:

java -javaagent:pathto/aspectjweaver.jar ...

请参阅AspectJ文档。

 类似资料:
  • 问题内容: 为了更好地理解Java中的工作原理,我想知道是否可以在运行时动态地向类路径添加目录。 例如,如果我使用 “ java -jar mycp.jar” 启动一个 .jar 并输出 java.class.path 属性,则可能会得到: 现在可以在运行时修改该类路径以添加另一个目录吗?(例如,在使用我要添加的目录中的 .jar 首次调用类之前)。 问题答案: 您可以使用以下方法: 但是您需要使

  • 更新 当我在proj B上进行sbt编译时,它抛出错误,依赖类找不到。类Hbase在Proj A中。 在建议之后更新了build.sbt: “;”应为,但在projB设置中为该行抛出了找到的字符串文本。 我对这个错误一无所知。

  • 问题内容: 简而言之,我需要能够将已编译的可执行文件粘贴到Java jar文件中,然后能够从Java运行它(可能通过)。 的 原因 ,是我想使用Java来包裹ImageMagick的可执行文件成分的图像处理弹性的Map Reduce任务。EMR只希望获取一个jar文件,因此我认为没有空间在旋转的数据节点上安装软件。 问题答案: jar中的可执行文件是一种资源,您可以通过Stream访问它,并将可执

  • 我还在想办法弄清楚回收站。我有一个arraylist,用于初始化回收器视图。 如何在设置适配器和布局管理器后向回收器视图添加新项目? 所以基本上,在我和之后,我如何向RecyclerView添加一个新项目呢??

  • 问题内容: 是否可以使用XML配置中的规范以编程方式添加Log4J2附加程序? 我计划在log4j2.xml中定义所有内容,然后按情况选择追加器(不会编译): 问题答案: 编辑:有关log4j2的最新版本,请参阅下方答案 我给他们留下了不希望您这样做的印象,但这对我有用:

  • 我试图实例化插件,配置它并将其传递给我的模型上的方法,但似乎没有任何效果。下面是我的代码: 我做错了什么?