`
geeksun
  • 浏览: 954103 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.lang.NoClassDefFoundError问题的resolve

阅读更多

      现在公司的项目用的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   表达式创建的新实例的一部分),但无法找到该类的定义时,抛出此异常。    
   
  当前执行的类被编译时,所搜索的类定义存在,但无法再找到该定义。

可以去吃早餐啦  哈哈

分享到:
评论
2 楼 geeksun 2008-11-11  
嗯,是的,在1.5版本上不会出现这样的问题,学习啦。
1 楼 yyjn12 2008-11-09  
早期版本的java程序运行时,虚拟机不会在当前目录下寻找所需的class。只是在环境变量classpath中寻找。
在classpath中加上.,就是加上当前目录。

相关推荐

Global site tag (gtag.js) - Google Analytics