代码如下:
package com.peifeng.paint;public class Hello {
public static void main(String[] args) {
System.out.println("hello");
}
}
环境变量设置肯定无误,可是每次运行都提示如下
D:\PaintApp\src\com\peifeng\paint>javac Hello.javaD:\PaintApp\src\com\peifeng\paint>java Hello
Exception in thread "main" java.lang.NoClassDefFoundError: Hello (wrong name: co
m/peifeng/paint/Hello)
不知为什么会这样,但是如果我不放在包里面,直接放在d盘下面,去掉package那些就可以运行

解决方案 »

  1.   

    你的.java文件的确是在那个包下,因为编译该类时通过,但是编译好的.class文件就不在这个包下了,所以报NoClassDefFoundError: Hello 这个错误,楼主你保证环境变量CLASSPATH没配置错误吗,呵呵,你编译好后去打开那个包看看有没有.class文件,呵呵,肯定没有
      

  2.   

    肯定没错,在那个包里也有class文件,主要是因为那个包的wrong name问题,而不是配置或者输入错误或者里面语法错误
      

  3.   


    运行java命令时要在包的根目录下执行,即:
    D:\PaintApp\src\java com.peifeng.paint.Hello
      

  4.   

    问题解决了,主要是包的问题,包名package有问题,我在目录结构里面的程序还带有包名,程序会以为所在目录还有那种包结构,进行查找找不到这个class,可能我解释不是很清楚,见谅