Eclipse复制项目报NoClassDefFoundError,如何修正项目/包/类路径?
Eclipse复制项目后NoClassDefFoundError路径指向旧项目解决方案
错误本质
复制项目后残留的旧配置、编译缓存会导致运行时加载旧路径的类,按以下步骤依次排查即可解决:
错误栈信息:
java.lang.NoClassDefFoundError: cosc2425lab5fa21a/ArrayExamples at cosc2425lab5fa21/cosc2425lab5fa21testa.Lab5Test.main(Lab5Test.java:25)
排查步骤
- 清理编译缓存:右键新项目 → 选择
Clean,勾选Start a build immediately执行清理,完成后重启Eclipse,消除旧的class文件残留。 - 修正编译输出路径:右键新项目 → 选择
Properties→ 搜索进入Java Build Path配置页 → 切换到Source标签,确认Default output folder路径指向新项目的编译输出目录(默认是新项目根目录下的/bin),路径中不能出现旧项目名cosc2425lab5fa21。 - 更新运行配置:点击顶部菜单栏
Run→ 选择Run Configurations→ 找到当前执行Lab5Test对应的Java Application配置,确认两个字段:Project选择加了后缀a的新项目,Main class指向新包路径下的cosc2425lab5fa21a.cosc2425lab5fa21testa.Lab5Test;也可以直接删除旧的运行配置,右键新项目里的Lab5Test类重新执行生成新配置。 - 全量替换旧包名引用:全局搜索项目中所有硬编码的旧包名
cosc2425lab5fa21,包括import语句、反射调用的类路径字符串,全部替换为新包名cosc2425lab5fa21a。 - 校验项目依赖:回到
Java Build Path的Libraries标签页,确认所有依赖的jar包、关联项目都没有指向旧项目的资源,存在旧依赖项直接删除后重新添加新项目内的对应资源。
内容的提问来源于stack exchange,提问作者Jonn Mc
相关产品推荐
相关产品推荐

