J2EE1.5 安装导致 java.lang.NoClassDefFoundError 异常及解决

来源:互联网 发布:贵州大数据局局长 编辑:程序博客网 时间:2024/05/29 17:46

    在没有安装J2EE1.5之前,我写的小程序都运行正常,安装后所有程序编译都正常,但是运行时会出现 java.lang.NoClassDefFoundError 异常。这是什么原因呢?

    我们都知道 java.lang.NoClassDefFoundError 异常出现的原因是系统找不到运行类的所在位置,在这种情况下如果你确定进入的当前目录是正确的,那么通常是因为系统环境变量中缺少了当前目录"."的定义,这时我们必须检查一下系统变量定义。

    通常很多朋友会毫不犹豫的首先点击 "我的电脑" --> "属性" --> "高级" --> "环境变量" 打开 "环境变量" 对话框来检查自己系统的环境变量配置是否正确,得到的结果往往是配置正确得简直就是样板工程,而这个结果又会令他们疑惑不解,为什么配置正常却运行不了呢?这是典型的被自己的经验所误导。根据我个人的经验看,检查环境变量配置情况的顺序应该是:是先进入 "cmd" 命令行窗口进行打印检查,如果发现错误再进入 "环境变量" 对话框进行检查。

    我们今天就来按此顺序进行检查,步骤如下:

    1. 点击 "开始" --> "运行" 打开 "运行" 对话框, 在 "运行" 输入框中键入 "cmd" 并点击 "确定" 按钮打开 "命令行窗口" , 在光标处键入 "set CLASSPATH" 查看环境变量 CLASSPATH 的定义值,我们发现了问题。如下图:

    2. 到"环境变量" 对话框检查环境变量 CLASSPATH 的定义,你会发现命令行中的 CLASSPATH 的值实质是 "用户变量中" 中 CLASSPATH 的值。

    3. 这说明用户变量将系统变量的值屏蔽了,让我们来检查一下这个判断是否正确。将用户变量 CLASSPATH 中的值添加到系统变量 CLASSPATH 之后,然后删除用户变量中的 CLASSPATH。

    4. 新开一个命令行窗口,键入 set CLASSPATH,我们会发现 CLASSPATH 的值恢复正常。如下图:

    5. 再次运行 Hello 类,运行正常。