首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将同一方面编织到多个jars中

将同一方面编织到多个jars中
EN

Stack Overflow用户
提问于 2011-09-30 22:00:52
回答 2查看 455关注 0票数 0

我一直在用AspectJ正确编织这个项目时遇到问题。情况是这样的:

我正在使用一个名为DaCapo Benchmark的基准库,并在其中尝试拦截对Iterator.HasNext()和Next()学术研究的所有调用。这似乎是在真空中工作,但是DaCapo的工作方式是它自己的jar包含其他jar,它根据我想要与它的依赖项一起运行的基准来提取这些jar,并运行它。

我希望截取具有相同方面的所有HasNext()和Next(),以便在所有jar文件而不是每个单独的jar文件中跟踪我的合计。

我希望我给人的印象足够清晰。为了能够帮助我解决这个奇怪的问题,我完全可以回答你可能有的任何问题。

附注:我有一种奇怪的感觉,这实际上并不可行,但在eclipse中使用AJDT (我使用raw aspectj和ajc进行DaCapo基准编织)的测试暗示了这种可能性。

EN

回答 2

Stack Overflow用户

发布于 2014-07-08 19:23:23

我知道为时已晚,但也许能帮助其他人。。

无论我从你的问题中理解到什么,你都想在多个jars中挥动相同的方面。

所以有两种方法

如果您正在使用eclipse,请使用

然后创建aspect项目并进入其属性>单击左侧面板上的aspect build选项>选择右侧面板上的inpath选项卡>现在单击add external jars >添加您希望将aspect挥发到其中的jars >单击OK

再次转到它的属性>单击左侧面板上的aspect build选项>选择右侧面板上的Output jar tab >并为您想要创建的新jar指定名称。.>click好的。

创建并编写方面,构建或清理项目。它将根据您在"output jar“中给出的名称在项目的根目录中生成jar,并且这个jar将包含您在inpath jar中给出的所有jar,并带有aspect。。就是这样。。

  1. 如果您使用的是命令propmt,则:

编写你的aspect来拦截你想要.>的方法,现在在命令提示符下执行下面的命令:

MyOutputJar.jar -inpath myJar1.jar -inpath myJar2.jar myAspect.java -outjar ajc

就这样,它将生成包含您在inpath中提到的所有jar的最终jar。。您可以使用任意数量的-inpath,只要您想要将代码写入其中。对于任何依赖错误,在类路径中提供所需的依赖jars。

票数 1
EN

Stack Overflow用户

发布于 2011-10-02 05:41:39

如果您使用的是加载时编织,这是不太可能的。有一个循环性的问题。您需要编织JDK,但是编织器需要JDK加载自身,所以JDK的许多部分不能使用LTW编织。

因此,您将需要使用编译时织入。像这样的东西将会起作用:

代码语言:javascript
复制
ajc -inpath rt.jar -outjar woven_rt.jar *.aj

我不确定这是否是您遇到的问题,但它可能会解决问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7611506

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档