oClassDefFoundError

loceny 2008-09-03 11:22:01
Classpath: .;C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar;C:\Program Files\Java\jre1.5.0_07\lib\rt.jar
Target Class existed: E:\My Documents\Workspace\onlyfun\caterpillar\PackageDemo.class


E:\My Documents\Workspace\onlyfun\caterpillar>java PackageDemo

Exception in thread "main" java.lang.NoClassDefFoundError: PackageDemo (wrong na
me: onlyfun/caterpillar/PackageDemo)
at java.lang.ClassLoader.defineClass1(Native Method)
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)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)

E:\My Documents\Workspace\onlyfun\caterpillar>
...全文
105 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qusic 2008-09-04
  • 打赏
  • 举报
回复
在使用java命令时 类名字要和包名一起的
把目录切换到奥workspace下
E:\My Documents\Workspace> java nlyfun.caterpillar.PackageDemo
这样就OK了
dingwood 2008-09-04
  • 打赏
  • 举报
回复
你在运行java PackageDemo这个命令时,操作系统不知道PackageDemo在哪,就在你设置的classpath环境变量中找,其中包括三部分:
1.就是前面那个点
2.C:\Program Files\Java\jdk1.5.0_07\lib\tools.jar
3.C:\Program Files\Java\jre1.5.0_07\lib\rt.jar
他会依次在这三个里面找 PackageDemo
首先在当前目录E:\My Documents\Workspace\onlyfun\caterpillar找,但你定义了这么一句
package onlyfun.caterpillar他就在E:\My Documents\Workspace\onlyfun\caterpillar这个目录下找onlyfun文件夹,再在onlyfun文件夹下找caterpillar文件夹,然后在此文件夹下再找PackageDemo,然后他根本找不到那些文件夹,就更找不到个类了.
当然在后面两个变量里更找不到这个类,所以提示说:NoClassDefFoundError,没定义这个类.

解决方法:
1.把package onlyfun.caterpillar;这个去掉,在这个目录E:\My Documents\Workspace\onlyfun\caterpillar重新编译运行;
2.在E:\My Documents\Workspace目录下运行文件 java onlyfun/caterpillar/PackageDemo
或java onlyfun.caterpillar.PackageDemo


sleps 2008-09-03
  • 打赏
  • 举报
回复
包名为什么要加个点??直接写caterpillar不可以吗?或者直接写onlyfun
loceny 2008-09-03
  • 打赏
  • 举报
回复
附上代码:

package onlyfun.caterpillar;

public class PackageDemo {
public static void main(String[] args) {
System.out.println("Hello! World!");
}
}
loceny 2008-09-03
  • 打赏
  • 举报
回复
请教各位大虾了.

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧