论坛首页 Java企业应用论坛

java.lang.NoClassDefFoundError问题的resolve

浏览 4150 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-09   最后修改:2010-09-21
OO

      现在公司的项目用的jdk是1.4版本的,近几日在本地机器上部署一直提示版本错误,一气之下,又重装了1.5的jdk,在测试时(写了一个简单的Test类),一直在报 Exception   in   thread   "main"   java.lang.NoClassDefFoundError:Test,然后开始查找问题,从classpath,path,JAVA_HOME,到cmd下的java -version,java,javac,java -classpath命令,都试过了,这些都很良好,还是找不到问题的根源,都快到崩溃的边缘啦。。。

      到google上狂搜,一页一页挨着看,最后从一个http://topic.csdn.net/t/20060729/14/4913688.html上的一个解决方案上问题得到了解决,set   classpath=.;java  Test,在dos窗口下用这个命令java文件正确得到运行,现在想来,还是classpath的问题,在JVM加载类文件的时候,需要找到该类的定义,无法找到时,报 NoClassDefFound的错误。所以需要set一下classpath,^_^.

补充:还有一种方法是,在dos窗口中输入  D:\>java -classpath \ Test,也可让java程序正确执行。

附:

NoClassDefFoundError  
  当   Java   虚拟机或   ClassLoader   实例试图在类的定义中加载(作为通常方法调用的一部分或者作为使用   new   表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。    
   
  当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。

可以去吃早餐啦  哈哈

   发表时间:2008-11-09  
早期版本的java程序运行时,虚拟机不会在当前目录下寻找所需的class。只是在环境变量classpath中寻找。
在classpath中加上.,就是加上当前目录。
0 请登录后投票
   发表时间:2008-11-11  
嗯,是的,在1.5版本上不会出现这样的问题,学习啦。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics