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

环境: 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!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值