首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AspectJ: VerifyError

AspectJ: VerifyError
EN

Stack Overflow用户
提问于 2012-01-26 23:27:07
回答 3查看 2.7K关注 0票数 4

我正在尝试面向方面的编程。我已经在Eclipse中安装了AspectJ-插件,并遵循了这个教程中提到的所有步骤。

创建的方面之间的所有连接都可以工作,但是当我尝试运行项目时,我会收到以下异常:

代码语言:javascript
复制
HelloException in thread "main" java.lang.VerifyError: Expecting a stackmap frame at branch target 6 in method helloworld.World.<clinit>()V at offset 0
at helloworld.Hello.sayHello(Hello.java:11)
at helloworld.Hello.main(Hello.java:6)

当我清空类World.aj并运行该项目时,一切正常,并且在控制台中收到预期的"Hello“。

下面是我在本教程中创建的类:

Hello.java

代码语言:javascript
复制
package helloworld;

public class Hello {

    public static void main(String[] args) {
          sayHello();
     } 

    public static void sayHello() {
          System.out.print("Hello");
     }
}

World.aj

代码语言:javascript
复制
package helloworld;

public aspect World { 

    pointcut greeting() : execution(* Hello.sayHello(..)); 

    after() returning() : greeting() { 
        System.out.println(" World!"); 
    } 

}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-26 03:04:15

我还遵循了教程,并遇到了同样的错误。我就是这样解决这个问题的。

我发现,默认情况下使用eclipse ( JavaSE-1.7 )选择的JRE执行环境与AspectJ有问题。因此,您必须做的是更改执行环境JRE,例如选择JavaSE-1.6。

之后,您可以遵循本教程,并获得所需的输出!:)

希望这能有所帮助!

票数 1
EN

Stack Overflow用户

发布于 2012-02-17 09:31:53

这个问题似乎与AOP无关。

我认为这就是这里描述的eclipse:bug.cgi?id=362591

Ayushman 2011-11-02 :47:32说:如果你卡住了,请使用VM参数-XX:-UseSplitVerifier运行程序。我确认此选项没有验证错误。

您也可以尝试下载eclipse的最新版本。

票数 4
EN

Stack Overflow用户

发布于 2013-10-03 04:44:27

我对@KC的回答没有什么意见,这对我来说很管用,

所以把这个作为一个额外的答案

代码语言:javascript
复制
     -XX:-UseSplitVerifier

为我工作过

我有一个在Eclipse3.7中运行良好的AspectJ项目,然后突然开始错误,将-XX:-UseSplitVerifier添加到启动程序配置中,解决了这个问题。

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

https://stackoverflow.com/questions/9027009

复制
相关文章

相似问题

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