2014-02-17 199 views
1

當試圖從終端運行我的程序時,我得到Exception in thread "main" java.lang.NoClassDefFoundError: start (wrong name: Start)。我在我的程序中有兩個類,名爲Load.javaStart.java,當文件使用javac *.java編譯正常時,但是當我嘗試並使用java Start啓動Start.java時,出現此錯誤。NoClassDefFoundError當從終端啓動時(Java)

Exception in thread "main" java.lang.NoClassDefFoundError: start (wrong name: Start) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) 
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482) 

我發現了其他人得到類似錯誤的例子,但似乎找不到解決方案或我爲什麼發生。所以這是我的問題,爲什麼我得到這個錯誤?我能做些什麼來防止它再次發生?

謝謝,Ciaran。

+0

好像你正在運行的Java'的start'代替'java的Start'。 –

+0

兩者都給出了相同的結果。 – user202051

+0

你的課程有哪些包? –

回答

3

您必須使用完全限定的類名稱。如果您的課程「開始」處於包a中,則必須使用java a.Start進行啓動。您也可以使用 - cp選項來設置類路徑。

+0

設置類路徑,現在工作正常。謝謝。 – user202051

0

您必須從主路徑打開CMD並運行java命令並提供完整軟件包詳細信息。例如:如果您的Start.class位於C:\ EampleProj \ com \ test \ Start.class中,請執行以下操作:那麼你應該嘗試

C:\ EampleProj>的Java com.test.Start