@Java 5符合性级别或更高级别支持注释



当我尝试运行一个应用程序时,我收到以下错误:

error the @annotation pointcut expression is only supported at Java 5 compliance level or above

该应用程序使用AspectJ 6.0、AspectJWeaver 1.8和SpringAspects 4.2依赖项。我已经检查了启动的JVM是JDK 1.8,JAVA_HOME也设置为JDK 1.8安装。从类似的问题中,我发现答案是确保aspectjweaver设置为1.8,并且不要将AspectJ1.5.4与JDK1.6以上的任何东西一起使用。我可以检查其他设置或配置吗?

更多的堆栈跟踪:

Exiting with throwable: org.springframework.beans.factory.BeanCreationException:   
Error creating bean with name   org.springframework.context.event.internalEventListenerProcessor':  Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: error the @annotation pointcut   expression is only supported at Java 5 compliance level or above
org.springframework.beans.factory.BeanCreationException:   
Error creating bean with name 'org.springframework.context.event.internalEventListenerProcessor': Initialization of bean failed;  
nested exception is java.lang.IllegalArgumentException:   
error the @annotation pointcut expression is only supported at Java 5 compliance level or above

简而言之:不要部署具有冲突的AspectJWeaver 1.8依赖关系的AspectJ 6.0。

我怀疑这对任何人都没有太大帮助,因为这个问题非常小众。我的本地部署有一个AspectJ6.0 jar,它附带了一个旧版本的AspectJWeaver jar。来自/myApp/lib/*的应用程序集类路径的run命令。

为了找出所有的依赖关系,我做了:先是sudo ps -ef | grep -i myApp,然后是lsof -p <pid> > ~/tmp。我之所以能够使用它,是因为当应用程序出现故障时,该过程仍然启动。我注意到类路径中有一个旧版本的aspectJWeaver,并最终从本地类路径文件夹中删除了AspectJ6.0 jar。

查看java主页。验证其是否小于7。

使用java版本。

例如,在jboss中,验证standalone.bat和standalone.config.

我有相同的错误消息和堆栈跟踪,但依赖版本略有不同。

问题是缺乏对Java 9的支持。恢复到Java 8解决了此问题。

最新更新