2010-11-15 25 views
0
import java.io.*; 

public class ArrayApp{ 

    public static void main(String[] args){ 

     System.out.println("lllll"); 
    } // end main() 
} // end class ArrayApp 

我編譯它後運行我的應用程序時出現此錯誤。找不到NoClassDefFoundError!

Exception in thread "main" java.lang.NoClassDefFoundError: ArrayApp 
Caused by: java.lang.ClassNotFoundException: ArrayApp 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
Could not find the main class: ArrayApp. Program will exit. 
+1

難道你沒有包裝聲明來開始你的課程嗎?你的工作環境是什麼?你是用Eclipse編譯的嗎? Netbeans的?或者只是javac? – 2010-11-15 14:42:59

回答

5

您需要確保您的類文件位於類路徑中。假設你使用默認包(即沒有包聲明),你需要告訴Java當你運行它時在哪裏找到你的類。因此我們假設您的ArrayApp.class文件位於相同的目錄中。你需要這樣運行:

java -cp . ArrayApp 

選項-cp及以下.告訴Java中的類會在當前目錄。 -cp的較長名稱是-classpath,因此您也可以使用它。

還要注意classpath和類名之間的空格。該路徑是您的類文件所在的基本目錄。如果他們編成一個名叫「bin」目錄,然後你會改變你調用Java這樣的方式:

java -cp bin/ ArrayApp 

的「ArrayApp」是完全合格的類名。

1

您的類路徑不正確。嘗試... java -classpath . ArrayApp