Java 7的艾玛和JUnit造成java.lang.VerifyError的及非法局部变量错误(J

2019-07-31 06:07发布

所以,我得到这些错误

在方法test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest [junit的]非法局部变量表的长度为17。()V

[junit的] java.lang.VerifyError的:在方法test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.StressTest期待在分支目标11 stackmap帧()V在偏移量4

在方法test.nz.ac.massey.cs.sdc.log4jassignment.s06005586.AppenderLayoutTest非法局部变量表的长度为17()V:[junit的] java.lang.ClassFormatError。

我想知道我该如何解决?

我读过:

  • Java 7的JVM的VerifyError在Eclipse
  • TestNG的艾玛的Cobertura,覆盖范围和JDK 7结果ClassFormatError和的VerifyError
  • EMMA代码覆盖
  • 使用EMMA与ANT的JUnit测试覆盖率报告
  • 臭虫141252 - 1.6编译器ClassFormatError:非法类名“”类文件(固定)
  • 3.2。 :在即时插装Java类

我做了什么:

资源:

  • 的build.xml (将在24小时后过期)
  • 的build.xml输出 (将在24小时后过期)
  • 蚂蚁诊断报告 (将在24小时内到期)
  • 前一个问题
  • Maven的艾玛-插件-0.6.jar
  • emma.jar和emma_ant.jar

对于一些很疯狂的原因,JUnit的传递target="test" ,但未能对target="emmatest"

这是在命令提示的输出从java -version

java version "1.7.0_03"
Java(TM) SE Runtime Environment (build 1.7.0_03-b05)
Java HotSpot(TM) 64-Bit Server VM (build 22.1-b02, mixed mode)

我试着为我设置默认参数java7 JRE-XX:-UseSplitVerifier从这里

参数http://iforce.co.nz/i/dvsh1eoc.n0m.png

我也试图与使它投诉JDK 1.6Project Properties

投诉http://iforce.co.nz/i/4jxuj4eb.rae.png

JUnit的直接测试的结果(在轨迹上没有错误)

JUnit的http://iforce.co.nz/i/wicrvpsi.5gw.png

我没办法了,请帮忙! :(

Answer 1:

听起来很奇怪。

首先,检查你的代码,看看是否你已经使用在JDK 1.7引入了新的语法特性,比如try-with-resourcediamond operator

我以前见过这个的VerifyError,使用的Cobertura时。 但是,当我设置-XX:-UseSplitVerifierjunit任务,它解决了。 我通过指定其设置<jvmarg>嵌套元素junit任务。

此外,大多数的覆盖库似乎支持JDK1.7很差。 然而,Jacoco所以我使用了它正常工作与JDK1.7。



Answer 2:

-XX:-UseSplitVerifier

不工作对我来说,我没有降级JRE 1.71.6



文章来源: Java 7 with emma and junit causing java.lang.VerifyError and Illegal local variable Errors