2011-09-25 4 views
0

Désistement: Je suis nouveau à java et emma. Détails:"java" réussit, "java emmarun" échoue

  • J'ai installé emma et j'ai travaillé sur certains exemples. Pas de problème.
  • J'ai un projet Java avec un certain nombre de fichiers que je souhaite obtenir un rapport de couverture.
  • Je tape "javac -d out * .java". Pas d'erreurs
  • Je tape "java -cp out Main". Le programme fonctionne bien et j'obtiens la sortie attendue.
  • Je tape "java emmarun -cp out Main". Je reçois le texte suivant:

    emmarun: [MAIN_METHOD_NOT_FOUND] classe d'application [Main] ne dispose pas d'une méthode principale publique runnable() Exception dans le thread "principal" com.vladium.emma.EMMARuntimeException: [MAIN_METHOD_NOT_FOUND] classe d'application [ Principal] ne pas avoir une méthode publique principale() exécutable at com.vladium.emma.rt.AppRunner._run (AppRunner.java:546) at com.vladium.emma.rt.AppRunner.run (AppRunner.java : 97) à com.vladium.emma.runCommand.run (runCommand.java:247) à emmarun.main (emmarun.java:27) Causé par: java.lang.IllegalAccessException: Classe com.vladium.emma. rt.AppRunner $ Invoker ne peut pas accéder à un membre de clas s Ma avec modificateurs "public static" at sun.reflect.Reflection.ensureMemberAccess (source inconnue) at java.lang.reflect.AccessibleObject.slowCheckMemberAccess (source inconnue) at java.lang.reflect.AccessibleObject.checkAccess (source inconnue) à java.lang.reflect.Method.invoke (source inconnue) à com.vladium.emma.rt.AppRunner $ Invoker.run (AppRunner.java:655) à java.lang.Thread.run (source inconnue)

Mon fichier "Main.java" ressemble à ceci:

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

Je posterais tout le code, mais il est plutôt long. Les exemples les plus simples que j'ai essayé fonctionnent bien - emma automatiquement les instruments et crée un rapport de couverture, tout comme dans les exemples.

Il semble qu'Emma ne trouve pas mon "Principal", mais le java ordinaire. Qu'est-ce que je rate?

+0

Est-ce une faute de frappe que ce qui précède n'a pas de modificateur 'public'? –

+0

Je vois un public dans "public static void main (String() args)", ou est-ce que "public" est requis ailleurs? – EMS

+0

La classe? Je ne sais pas si cela résoudra votre problème, mais je commencerai sûrement avec ça, parce que c'est facile. –

Répondre

0

Emma s'attend à ce que la classe soit définie comme public, ce qui manquait dans votre code d'origine.

+0

S'il vous plaît expliquer le downvote, ce qui est juste et tout. –

Questions connexes