2013-02-26 131 views
-1

我從http://kodejava.org/examples/566.html網站下載了JTree程序。它正在編譯,但運行該程序時,它給這個例外:我的JTree代碼有什麼問題?

Exception in thread "main" java.lang.NoClassDefFoundError: JTreeDifferentNodeIcon (wrong name: org/kodejava/example/swing/JTreeDifferentNodeIcon) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

任何人都可以告訴我什麼是問題?謝謝你。

+2

更快地發佈[SSCCE](http://sscce.org/),短,可運行,可編譯, – mKorbel 2013-02-26 08:03:11

+1

A [NoClassDefFoundError](http://docs.oracle.com /javase/1.4.2/docs/api/java/lang/NoClassDefFoundError.html)在項目中缺少類定義時拋出。所以當程序上次編譯時就存在了,但它已經消失了。正如@mKorbel所說,發佈SSCCE是現在最好的做法。 – christopher 2013-02-26 08:13:48

+1

正如@mKorbel所說,需要一個SSCCE來提供更好的支持,但就像第一次檢查一樣,你是否在包org/kodejava/example/swing/JTreeDifferentNodeIcon'中創建了類?因爲這似乎是問題,因爲發佈的代碼應該正常工作。 – araknoid 2013-02-26 08:19:22

回答

0

它說「NoClassDefFoundError」(沒有類定義發現錯誤),所以我認爲你使用的類之前沒有定義過(可能是因爲忘記或忘記導入內容或刪除文件或將最終文件從一個文件夾到另一個)
PS我還沒有看過代碼(沒有足夠的時間)

1

你的包是org.kodejava.example.swing。您可以通過指定-d選項來嘗試構建javac。爲了更好的理解,讓我們假設你已經在你的桌面源文件說"C:\Users\sarath_sivan\Desktop\JTreeDifferentNodeIcon.java"

  • 首先,你可以請打開命令提示符,將目錄更改爲 C:\Users\sarath_sivan\Desktopcd C:\Users\sarath_sivan\Desktop)。
  • 然後創建一個名爲classes的新文件夾(mkdir classes)。
  • 現在,您可以使用javac構建,指定「-d」選項來告訴它基本目錄,並且它會創建適當的包結構。 (javac -d classes JTreeDifferentNodeIcon.java
  • 然後,您可以運行java -cp classes org.kodejava.example.swing.JTreeDifferentNodeIcon這將產生輸出是這樣的:

enter image description here

希望這有助於! 謝謝...

+0

嗨Sarath庫馬爾Sivan ..與您的答案,它工作正常。非常非常感謝你。 – user27510 2013-02-26 09:58:48