Eclipse运行Java类报错java.lang.ClassNotFoundException的原因及解决方法
java.lang.ClassNotFoundException的成因及解决办法
常见成因
- 类名与文件名不匹配:Java严格要求主类名(包括大小写)和
.java文件名完全一致,比如类定义是public class File,但文件名是file.java,就会导致找不到类。 - 类未完成编译:Eclipse可能因编译错误、自动编译开关未开启等原因,没生成对应的
.class文件;或者项目输出目录(默认是bin)里没有该类的编译文件。 - 运行配置错误:Run Configurations里指定的主类格式错误,比如填了
file.java(带后缀)而非类名file,或者全限定名填写错误(比如漏了包名)。 - 项目构建路径异常:Eclipse项目的Build Path未将类所在目录设为源文件夹,或者依赖的第三方库缺失、路径配置错误。
- 项目结构问题:
.java文件未放在src目录(或Eclipse识别的源文件夹)下,Eclipse默认只会编译源文件夹内的类。
解决步骤
- 核对类名与文件名:确保主类的名称(大小写一致)和文件名完全匹配,比如
public class MyMain对应MyMain.java。 - 强制编译并检查编译文件:右键项目 →
Project→Build Project手动编译;然后查看项目的bin目录,确认存在对应的.class文件。如果类有编译错误(红色叉号),先修复错误再编译。 - 修正运行配置:打开Run Configurations,找到对应的Java Application配置,在
Main标签页中,主类填写类的全限定名(默认包下直接填类名,带包的话填包名.类名),绝对不能带.java后缀。不确定的话点击Search按钮,从列表中选择正确的主类。 - 检查构建路径:右键项目 →
Build Path→Configure Build Path,在Source标签页确认类所在目录已被添加为源文件夹;Libraries标签页检查所有依赖库是否正常加载。 - 调整文件位置:将
.java文件移动到项目的src目录下,或者右键目标目录 →Build Path→Use as Source Folder,让Eclipse识别为源目录。 - 清理重建项目:右键项目 →
Project→Clean,选择当前项目后执行清理,Eclipse会删除旧编译文件并重新构建项目。
内容的提问来源于stack exchange,提问作者Silvia Ercolano
相关产品推荐
相关产品推荐

