大家好,我想问一个问题,
我写了一个如下的类
package hello;
class HelloWorld { 
public static void main(String[] args) { 
// Display "Hello World!" 
System.out.println("Hello World!"); 

}此时保存到D:\test下面,然后进入DOS的CMD中切换到这个目录下面执行
javac -d . HelloWorld.java以后,此时我在CMD中将目录切换到我的包hello中,然后运行java HelloWorld却出现了如下错误Exception in thread "main" java.lang.NoClassDefFoundError: Hello(wrong
hello/HelloWorld)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:486)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.
1)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:248)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:286)
at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
我找了相关的文章都没有解决这个问题,请大家帮忙看看

解决方案 »

  1.   

    看你的classpath了,你这样执行虚拟机会认为HelloWorld.class文件在D:\test\hello\hello下面(好像是)。
    一般情况下在命令行D:\test目录下执行java hello.HelloWorld
      

  2.   

    Java文件如下:
    D:\test\hello\HelloWorld.java进入test目录下:
    java hello.HelloWorld
    可运行, 也可带上-cp选项楼主基础知识有所欠缺, 请参考书!
      

  3.   

    看你的classpath了,你这样执行虚拟机会认为HelloWorld.class文件在D:\test\hello\hello下面(好像是)。
    一般情况下在命令行D:\test目录下执行java hello.HelloWorld我觉得这位仁兄说的还算有道理,呵呵,还是谢谢,不知道还有没有什么其他意见,我是菜鸟,希望大家多多帮忙