在Eclipse IDE中添加外部JAR包运行时出现java.lang.NoClassDefFoundError如何解决
问题根因
你遇到的是编译期类路径已包含外部JAR,但运行时类路径缺失该JAR的问题。Eclipse的编译期和运行时类路径是分开配置的,所以会出现代码无报错、编译正常,但运行时抛出ClassNotFoundException的情况。
解决步骤
- 右键点击项目名称,在弹出菜单中选择
Build Path→Configure Build Path - 在弹出窗口左侧选择
Java Build Path,切换到Libraries标签页 - 检查你添加的
test.jar的配置:- 若JAR被放在
Modulepath分类下,将其移动到Classpath分类下(Java 9及以上版本模块路径和类路径分离,普通非模块化项目的依赖JAR需要放在Classpath下才能被运行时加载) - 若JAR已在
Classpath下,确认JAR的路径有效:你当前是通过绝对路径添加的桌面路径的JAR,要确认桌面的test.jar没有被删除、移动或重命名
- 若JAR被放在
- 切换到
Order and Export标签页,勾选test.jar前的复选框,确保运行时会将该JAR纳入类路径 - 点击
Apply and Close保存配置,重新运行项目即可
优化建议
建议你在项目根目录新建一个lib文件夹,将test.jar复制到该文件夹下,后续通过Add JARs选项从项目内部选择该JAR,而非用Add External JARs添加外部绝对路径的JAR,避免项目迁移、JAR路径变动后出现依赖失效的问题。
内容的提问来源于stack exchange,提问作者Yuzhen Feng
相关产品推荐
相关产品推荐

