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 PackageDemoException 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>

解决方案 »

  1.   

    附上代码:
    package onlyfun.caterpillar;public class PackageDemo { 
        public static void main(String[] args) { 
            System.out.println("Hello! World!"); 
        } 
    }
      

  2.   

    包名为什么要加个点??直接写caterpillar不可以吗?或者直接写onlyfun  
      

  3.   

    在使用java命令时 类名字要和包名一起的
    把目录切换到奥workspace下
    E:\My Documents\Workspace> java nlyfun.caterpillar.PackageDemo 
    这样就OK了
      

  4.   

    你在运行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