2011-04-21 109 views
-1

我在java中運行的每個程序都給出了類似的錯誤。運行java程序時出錯

這是一個HelloWorld程序:

Exception in thread "main" java.lang.NoClassDefFoundError: helloworld (wrong nam 
e: helloworldapp) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClassCond(Unknown Source) 
     at java.lang.ClassLoader.defineClass(Unknown Source) 
     at java.security.SecureClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.access$000(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
Could not find the main class: helloworld. Program will exit. 
+2

你也可以顯示你的代碼嗎?並解釋你如何運行它? – RoflcoptrException 2011-04-21 08:18:42

+1

helloworldapp或helloworld或HelloWorld?請注意,Java會將類名稱視爲上/下。編輯記事本=? – 2011-04-21 09:59:42

回答

0

試試這個:

public class HelloWorld 
{ 
    public static void main(String[] args) 
    { 
    System.out.println("Hello World!"); 
    } 
} 

閱讀this tutorial關於這個問題。

+0

當我嘗試這段代碼時,它顯示編譯時類關鍵字的錯誤。所以我刪除了public關鍵字併成功編譯了它。當我運行pgm時,我得到了相同的輸出結果。:( – 2011-04-21 08:56:26

+0

嘿,它好像是一個類路徑問題,你使用的是IDE還是簡單的文本編輯器?閱讀本文,它描述了你的問題:http://www.jarticles .com/package/package_eng.html – CloudyMarble 2011-04-21 09:27:42

+0

thanx文章參考。我清除它。 – 2011-06-19 03:57:02

0

如何啓動Java程序?你是否正確地傳遞了參數?注意班級路徑。如果你有helloworld.java文件和編譯它的HelloWorld.class,你應該這樣運行了它(從在同一目錄中的類文件所在的命令提示符):

java -cp . helloworld 
+0

起初我已經爲java編譯器設置路徑爲「path =%path%; c:\ Program Files \ Java \ jdk \ bin」。該程序不會顯示msg Hello world! – 2011-04-21 08:36:41

+0

您需要先編譯該文件(javac HelloWorld.java)。這將產生一個HelloWorld.class文件。然後你可以用我的答案中的命令運行它。 – kgiannakakis 2011-04-21 08:38:49

+0

@kgiannakakis該命令也提供相同的輸出。 – 2011-04-21 08:39:03

4

類文件helloworld.class包含一個名爲helloworldapp.class的類。我能想到的唯一真正的原因是您手動重命名了.class文件。

這不行!必須在稱爲helloworldapp.class.class文件中找到名爲helloworldapp的類。

如果要更改類的名稱,請重命名.java源文件,編輯class定義並重新編譯它。