"Java" успешно, "Java Emmarun" не удается - PullRequest
0 голосов
/ 26 сентября 2011

Отказ от ответственности: я новичок в Java и Эмме. Подробности:

  • Я установил emma и проработал некоторые примеры. Нет проблем.
  • У меня есть проект Java с несколькими файлами, для которых я хочу получить отчет о покрытии.
  • Я набираю "javac -d out * .java". Нет ошибок.
  • Я набираю "java -cp out Main". Программа работает нормально, и я получаю ожидаемый результат.
  • Я набираю "java emmarun -cp out Main". Я получаю следующее:

    emmarun: [MAIN_METHOD_NOT_FOUND] класс приложения [Main] не имеет работающего открытого метода main () Исключение в потоке "main" com.vladium.emma.EMMARuntimeException: [MAIN_METHOD_NOT_FOUND] класс приложения [Main] делает не имеет работоспособного публичного метода main () на com.vladium.emma.rt.AppRunner._run (AppRunner.java:546) на com.vladium.emma.rt.AppRunner.run (AppRunner.java:97) на com.vladium.emma.runCommand.run (runCommand.java:247) в emmarun.main (emmarun.java:27) Вызывается: java.lang.IllegalAccessException: класс com.vladium.emma.rt.AppRunner $ Invoker не может получить доступ к члену clas s Main с модификаторами "public static" at sun.reflect.Reflection.ensureMemberAccess (неизвестный источник) в java.lang.reflect.AccessibleObject.slowCheckMemberAccess (неизвестный источник) в java.lang.reflect.AccessibleObject.checkAccess (Неизвестный источник) в java.lang.reflect.Method.invoke (Неизвестный источник) на com.vladium.emma.rt.AppRunner $ Invoker.run (AppRunner.java:655) at java.lang.Thread.run (неизвестный источник)

Мой файл "Main.java" выглядит так:

public class Main {
    public static void main( String[] args ) {
        NetworkSimplexTest nst = new NetworkSimplexTest();
        nst.test();
    }
}

Я бы опубликовал весь код, но он довольно длинный. Простые примеры, которые я попробовал, работают нормально - emma автоматически использует инструменты и создает отчет о покрытии, как в примерах.

Похоже, что Эмма не может найти мою "Основную", но обычная Java может. Чего мне не хватает?

1 Ответ

0 голосов
/ 28 сентября 2011

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

...