2011-09-25 120 views
0

聲明:我是java和emma的新手。詳細信息:「java」成功,「java emmarun」失敗

  • 我安裝了艾瑪,並已經通過一些例子。沒問題。
  • 我有一個java項目,有一些我希望獲得覆蓋報告的文件。
  • 我輸入「javac -d out * .java」。沒有錯誤。
  • 我輸入「java -cp out Main」。該程序運行良好,我得到了預期的輸出。
  • 我輸入「java emmarun -cp out Main」。我得到如下:

    emmarun:[MAIN_METHOD_NOT_FOUND]應用程序類[主]沒有線程 「main」 com.vladium.emma.EMMARuntimeException可運行的公共main()方法 例外:[MAIN_METHOD_NOT_FOUND]應用程序類[主] 在com.vladium.emma.rt.AppRunner.run(AppRunner.java:546) 沒有可運行的公共main :97) at com.vladium.emma.runCommand.run(runCommand.java:247) at emmarun.main(emmarun.java:27) 引起來自:java.lang.IllegalAccessException:Class com.voltaic.emma。 rt.AppRunner $ Invoker不能訪問類的成員 s Ma與修飾語「公共靜態」 在sun.reflect.Reflection.ensureMemberAccess(來源不明) 在java.lang.reflect.AccessibleObject.slowCheckMemberAccess(來源不明) 在java.lang.reflect.AccessibleObject.checkAccess(來源不明) at java.lang.reflect.Method.invoke(Unknown Source) at com.vladium.emma.rt.AppRunner $ Invoker.run(AppRunner.java:655) at java.lang.Thread.run(Unknown Source)

我的 「Main.java」 文件是這樣的:

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

我會發布所有的代碼,但它相當長。簡單的例子我嘗試了很好的工作 - 艾瑪自動儀器和創建一個覆蓋報告,就像在例子中。

看來Emma找不到我的「Main」,但是普通的java可以。我錯過了什麼?

+0

這是一個錯字,上面沒有'public'修飾符? –

+0

我在「public static void main(String()args)」中看到public,或者在其他地方需要「public」嗎? – EMS

+0

這個班?我不知道這是否能解決您的問題,但我肯定會先從它開始,因爲這很容易。 –

回答

0

Emma預計該類將被定義爲public,這在您的原始代碼中是缺少的。

+0

請解釋downvote,它是正確的和所有。 –