2013-08-16 21 views
2

運行Java程序時,我收到以下錯誤:Java類

Error: Could not find or load main class Gen 

我有以下目錄結構:

  • 從我在何處運行的CURENT目錄該程序包含目錄層次結構: classes/gensig/gen和classes/gensig/util。在這個目錄中,我有我需要的類。
  • 我想從classes/gensig/gen運行類Gen。在classes/gensig/util中,我有一些我在Gen類中調用的類。
  • 我像這樣運行程序,但我得到的錯誤,我提到:

java -cp classes/gensig/gen/*.class:classes/gensig/util/*.class Gen

感謝您的幫助。

+0

「Gen」類的包名稱是什麼? –

+0

packege名稱是gen類的gen。 –

回答

2

類路徑必須包含構成包樹根(即構成默認包的目錄,其中包含頂層包的目錄)的根目錄或jar文件。

在你的情況下,它看起來像這個類叫Gen,並在包gensig.gensig。它的名字因此是gensig.gensig.Gen。包樹的根目錄是classes。所以,命令應該是:

java -cp classes gensig.gensig.Gen 

編輯:給出您的意見,您的類實際上是在包gen。包樹的根就是classes/gensig。所以命令應該是

java -cp classes/gensig gen.Gen 
+0

當我在線程「main」java.lang.NoClassDefFoundError:gensig/gen/Gen(錯誤名稱:gen/Gen)中使用上面的命令異常時,出現此錯誤。另外我需要包含來自util的類。我怎樣才能做到這一點。 –

+0

包含'util'的類,因爲包/目錄樹('classes')的根在類路徑中。 'CorviGen'因爲位於'gensig.gen'包中,所以無法找到,並且在類下沒有任何相應的目錄。你知道包樹必須與目錄樹匹配嗎?如果您遇到困難,請發佈所有類的代碼(從包裝語句到類的聲明),並告訴我們您用來編譯它們的命令。 –

+0

我有這個班,我編輯過。我使用了你說'java -cp classes gensig.gen.Gen'的命令,但是我仍然收到錯誤'java.lang.NoClassDefFoundError:gensig/gen/Gen(錯誤的名稱:gen/Gen)' –