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