2013-02-26 128 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