package com.heng;
 public class Hello{
public static void main(String[] args){
System.out.println("HELLO.JAVA");
}
}能编译但不能运行,这是为啥
H:\>javac Hello.javaH:\>java Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: co
m/heng/Hello)
        at java.lang.ClassLoader.defineClass1(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
4)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
        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:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)啊

解决方案 »

  1.   

    看下你的文件名是不是Hello.java???
      

  2.   

    在命令行运行 java com.heng.Hello
      

  3.   

    如果你的Hello.java放在H盘根目录就去掉包名:package com.heng;
    如果放在 H:\com\heng就带包名。public class Hello{
    public static void main(String[] args){
    System.out.println("HELLO.JAVA");
    }
    }
      

  4.   

    你的这个错误说的是:
    在H盘没有发现class文件所以要么就不要带package要么就在运行的时候把路径转到你所写package的路径下面。。
      

  5.   

    看你的包名是不是对应文件系统了。
    或者如楼上所说的:
    java com.heng.Hello
      

  6.   

    把生产的clss文件,放入H:/com/heng文件夹中
      

  7.   

    然后在H盘运行java com.heng.Hello
      

  8.   

    把编译后的class文件,放入com/heng文件夹中
      

  9.   

    我想请问下 为什么编译后不能直接在H盘运行,而是要用com.heng.Hello
      

  10.   

    看是否设置了classpath=.;
    -------------------------------
     java菜鸟学堂QQ群144648357
      

  11.   


    为什么要用 java com.heng.Hello
      

  12.   


    想这个例子该怎么设置set classpath=???
      

  13.   

    然后呢,不过这个例子我感觉在cmd里面设置一次性的那个最好。set classpath=后面该打什么?
      

  14.   

    我仿佛有点明白了,用java -d .Hello.java 编译以后吧Hello.class放到包里了,想用它就要带上包名,不知道我理解的对不对
      

  15.   

    你这个是找不到main函数导致,你运行时候要带上那个java问价你的路径 H:\com\heng