本帖最后由 胡永城 于 2013-12-31 13:53 编辑
好吧,找到原因了,在java中,是严格区分大小写的,所以Lon和lon是两个类。
但是,windows系统是不区分大小写的。
Lon.class和lon.class不能共存。
当编译的时候,首先编译生成 Lon.class文件,之后编译出现 lon.class。windows系统认为这两个文件是一样的,出现大小写的区别的时候,会出现覆盖,所以Lon.class你反编译一下源码是lon.java的。这个类没有main方法,运行时会报错,
出现NoClassDefFoundError错误的原因是当前目录下没有相对应的class文件。
我测试的时候出现的是lon.class文件,小写的,后来测试出现的都是大写文件名。原因可能是覆盖的时候文件名没有更改,
windows文件不区分大小写。
|
|