2017-02-11 44 views
1

我正在使用Emma代码覆盖率工具,并使用Java8。我是艾玛的新手,可用的帮助非常少。我试图使用以下链接。Emma代码覆盖率工具错误 - 找不到主要方法

  1. http://emma.sourceforge.net/intro.html
  2. http://users.csc.calpoly.edu/~jdalbey/309/Lectures/emmademo.html

但我不断收到以下错误,当我尝试运行:从here

java -cp emma.jar emmarun -jar .../jdk1.4.2/demo/jfc/SwingSet2/SwingSet2.jar 
java -cp TestTools\emma.jar;. emmarun -cp . CircleConverter 

我也试过选择,但它并没有帮助。

错误是 -

CoverageDemo>java -XX:-UseSplitVerifier -cp TestTools\emma.jar;. emmarun -cp . CircleConverter 
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option UseSplitVerifier; support was removed in 8.0 
EMMA: no coverage data collected at runtime [all reports will be empty] 
EMMA: writing [txt] report to [C:\Users\pkothavale\Downloads\CoverageDemo\coverage.txt] ... 
[EMMA v2.0, build 4217] 
emmarun: [MAIN_METHOD_NOT_FOUND] application class [CircleConverter] does not have a runnable public main() method 
Exception in thread "main" com.vladium.emma.EMMARuntimeException: [MAIN_METHOD_NOT_FOUND] application class [CircleConverter] does not have a runnable public main() method 
     at com.vladium.emma.rt.AppRunner._run(AppRunner.java:497) 
     at com.vladium.emma.rt.AppRunner.run(AppRunner.java:97) 
     at com.vladium.emma.runCommand.run(runCommand.java:247) 
     at emmarun.main(emmarun.java:27) 
Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 11 
Exception Details: 

回答

1
其实

,这个问题是由于该行:

Caused by: java.lang.VerifyError: Expecting a stackmap frame at branch target 11 

我发现这个链接的解决方案:java.lang.VerifyError: Expecting a stackmap frame at branch target JDK 1.7

但在短期,java7引入了更严格的验证并将其禁用,如果您使用java7,则可以添加选项“-XX:-UseSplitVerifier”,如果您在java8中,则可以添加“-noverify”选项。

所以对于java8正确的命令行是:

java -noverify -cp emma.jar emmarun -jar .../jdk1.4.2/demo/jfc/SwingSet2/SwingSet2.jar