我的classpath变量的配置是这样的:
CLASSPATH=.;C:\Program Files\Java\jdk1.6.0_13\lib\tools.jar;D:\rzjavafiles
然后,我创建了如下的目录结构
D:\rzjavafiles\a01\b02\
然后在b02\目录下创建了一个HelloWorld.java文件,代码如下:package a01.b02;class HelloWorld 
{
public static void main(String[] args) 
{
System.out.println("Hello World!");
}
}然后用进入b02目录,javac HelloWorld.java ,没有问题
但是 当 java HelloWorld
时,却报错:
D:\rzjavafiles\a01\b02>java HelloWorld
Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: a01/b02/HelloWorld)
        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)
Could not find the main class: HelloWorld.  Program will exit.当我去掉HelloWorld.java文件的首行的包定义的时候,就可以运行成功。
请问这是怎么回事呢?

解决方案 »

  1.   

    public class HelloWorld
      

  2.   

    改成了public,但是还是报错:D:\rzjavafiles\a01\b02>java HelloWorld
    Exception in thread "main" java.lang.NoClassDefFoundError: HelloWorld (wrong name: a01/b02/HelloWorld)
            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)
    Could not find the main class: HelloWorld.  Program will exit.
      

  3.   

    HelloWorld是在包里的
    访问必须加包名因为你配了CLASSPATH 所以任何目录都可以运行
    没配的话只能在D:\rzjavafiles下运行