2014-01-22 50 views
0

我在Java初學者,但不是在OOP我有C和C一些經驗++和PHP5 對於短期無我有「Hello World」程序測試的Java拋出異常的線程主要java.lang.NoClassDefFoundError

 package com.tutorial.helloworld; 
    public class helloWorld { 

    public static void main(String[] args) { 
       System.out.print("hello world!!!\n"); 
     } 

} 

當我編譯在控制檯用javac沒有錯誤編譯,但是當我運行Java的helloWorld 說

Exception in thread "main" java.lang.NoClassDefFoundError: helloWorld (wrong name: 
com/tutorial/helloworld/helloWorld) and much more code 

在Eclipse中運行正常。如果我刪除包語句並手動編譯將運行正常。但如果我保持包語句拋出該錯誤。 我應該把類文件放在一個子目錄com/tutorial/helloworld中,那該怎麼辦?我該如何從終端和目錄運行?

我在Mac OS X上,我用它在編輯中鍵入代碼,編譯並從控制檯 運行而不是在冰上運行。我無法使eclipse爲C++(C++ ide)工作,因此我嘗試用我學習或已知的所有語言來粘貼控制檯。

+1

您能顯示用於運行它的確切命令嗎?你的類路徑可能有些東西(或者沒有包含helloWorld的包名)。 –

+0

當你運行java時,你在'/bin'嗎? – Pietu1998

+1

另外,在Java中,約定是類名是大寫的(所以HelloWorld,而不是helloWorld)。 –

回答

2

在Java中,類名由包名+類的「名字」組成。因此請寫

java com.tutorial.helloworld.helloWorld 

您還必須知道您的.class文件在哪裏。您必須在包含com目錄的目錄中才能運行,其中.class文件位於com/tutorial/helloworld目錄中。

+0

或者將包含'com/tutorial/helloworld/helloWorld.class'的目錄的位置添加到classpath。 – Pshemo

+0

我明白,謝謝你們,所以需要軟件包的dir結構,並使用上述命令運行 – Nazakthul

相關問題