关闭

为什么会出现Exception in thread "main" java.lang.NoClassDefFoundError: welcome的错误?

1137人阅读 评论(0) 收藏 举报

环境: redhat linux as4, j2sdk1.5.0
welcome.java的内容如下:

public class welcome
{
public static void main(String [] args)
{
System.out.print("welcome.\n");
return;
}
}

编译: javac welcome.java
正确

运行: java welcome
出错: Exception in thread "main" java.lang.NoClassDefFoundDrror: welcome

后来终于找到原因: java加载了welcome.class以后,由于class文件里保存的只是对象引用记号,并没有保存类本身,并不像C++一样在二进制文件中就保存 着类的定义。所以这时java解释器就试图到环境变量CLASSPATH中找类welcome,而我当时的环境变量CLASSPATH为:
$CLASSPATH=/usr/java/jdk1.5.0_11/lib:/usr/java/jdk1.5.0_11/jre/lib
显示java解释器找不到welcome类的定义,即而出错。

悟出这一点,我立刻进行验证,先重新设置环境变量:
CLASSPATH=/usr/java/jdk1.5.0_11/lib:/usr/java/jdk1.5.0_11/jre/lib:.
注意最后加了一个冒号和点,冒号是多个域的分割符,点代表让java解释器到当前目录下寻找welcome.class

一切OK!


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:719665次
    • 积分:10826
    • 等级:
    • 排名:第1477名
    • 原创:480篇
    • 转载:10篇
    • 译文:0篇
    • 评论:28条
    文章分类
    最新评论