2012-04-25 2 views
3

У меня есть Java SE Development Kit 7u3 установленНе удается запустить покрытие кода EMMA

Я прошел через некоторые из тем, подобных этому (напр "java" succeeds," java emmarun" fails), но моя проблема заключается в том, что EMMA не работает для меня вообще. После того, как я бегу:

java -cp emma.jar emmarun -cp . Main 

он всегда говорит:

[EMMA v2.0, build 5312] 
emmarun: [MAIN_METHOD_NOT_FOUND] application class [Main] does not have a runnable public main() method 
Exception in thread "main" com.vladium.emma.EMMARuntimeException: [MAIN_METHOD_NOT_FOUND] application class [Main] 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 in method Main.<init>()V at offset 4 
     at java.lang.Class.getDeclaredMethods0(Native Method) 
     at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
     at java.lang.Class.getMethod0(Unknown Source) 
     at java.lang.Class.getMethod(Unknown Source) 
     at com.vladium.emma.rt.AppRunner._run(AppRunner.java:493) 

Компиляция хорошо работает ("JAVAC Main.java") и приложение работает (я получаю ожидаемый результат от "Java Main"). Код Main.java - это простое приложение HelloWorld.

public class Main{ 

public static void main(String[] args) { 
    System.out.println("Hello, World"); 
} 

Я просто хотел запустить emmarun на любой пример кода, чтобы увидеть, работает ли он. Ну, это не так. Любые идеи о том, что я делаю неправильно?

+0

http://emma.sourceforge.net/intro.html Ваше заявление о запуске emma не выглядит правильным. –

+0

да, я тоже пробовал это для файла .jar, с тем же эффектом – user1356305

+0

Вы пытались сделать ваше имя файла java под именем класса? (оба HelloWorld, или оба Main) –

ответ

1

Это, кажется, появляется в нескольких местах. Решения я обнаружил до сих пор таковы:

  • Поскольку вы используете Java 7, это может быть проблема с эмма плагин (если используется затмение). По-видимому, установка бета-версии для этого плагина позволяет использовать Java 7: Link: Testng, Emma, Cobertura, coverage and JDK 7 result in ClassFormatError and VerifyError

  • Комментарии к этой же ссылке рассказывают об использовании опции Java JVM '-X: + UseSplitVerifier', чтобы решить эту проблему.