2014-02-27 75 views
1

我已經創建了一個名爲「cancelladir」,也就是在一個目錄名「cancelladir」,當我寫在我的Ubuntu的殼,「javac的cancelladir.java」文件Java中創建cancelladir.class但是當我嘗試執行與命令「java cancelladir」文件的Java有一些錯誤是這樣的:java.lang.NoClassDefFoundError:和其他錯誤

Exception in thread "main" java.lang.NoClassDefFoundError: cancelladir (wrong name: cancelladir/cancelladir) 
    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) 

我已經設置了類路徑在export CLASSPATH=.:/home/lisa/graphhopper/graphhopperAndrea/web/src/main/webapp/cancelladir並嘗試重新編譯但沒有任何變化。 有什麼問題?我必須做什麼?

+0

您是否調試過代碼以找到哪行代碼會引發錯誤? – lakshman

+0

它無法在類路徑中找到您的類。打開一個新的命令窗口並嘗試設置類路徑,如export CLASSPATH = $ {CLASSPATH}:。 – Jay

+0

什麼是我必須使用的代碼和程序來完成你寫的內容?抱歉,但我在java中 – Zoifil

回答

1

之後您編譯代碼,你結束了在你的程序中的每個類的.class文件。這些二進制文件是Java解釋來執行程序的字節碼。 NoClassDefFoundError指出負責動態加載類的類加載器無法找到您嘗試使用的類的.class文件。這可能表示在執行代碼時沒有設置類路徑選項。此鏈接介紹如何設置classpath中,當你執行

1

1)打開一個新的外殼,添加一個新的簡單的程序是這樣的。
2)使用javac編譯java代碼Hello.java
3)使用java運行代碼你好
它應該工作,如果你仍然有問題,讓我們知道。

enter image description here

+0

我有同樣的問題=( – Zoifil

+0

)您是否試過這個簡單的Hello.java計劃嗎?你能包粘貼堆棧跟蹤? – Jay

+0

對不起現在的IT工作(僅Hello.java的簡單代碼) – Zoifil