使用Eclipse运行Coursera杜克Java课程代码出现NoClassDefFoundError如何解决
报错根因
java.lang.NoClassDefFoundError: edu/duke/FileResource 说明编译阶段你已经正确引入了edu.duke的依赖包,但JVM在运行程序时没有在类路径下找到对应的类,这是Eclipse和课程推荐的BlueJ环境的配置差异导致的。
解决步骤
- 首先确认依赖包已正确引入编译路径
右键项目 →Build Path→Configure Build Path→ 切换到Libraries标签,确认你使用的edu.duke相关jar包(课程配套的duke.jar或整合包algs4.jar)已添加到Classpath分类下,无报错标识。 - 其次将依赖包添加到运行时类路径
- 右键
WordLengthsTest类 →Run As→Run Configurations - 找到当前你使用的Java应用运行配置,切换到
Classpath标签 - 选中
User Entries,点击右侧的Add JARs(如果jar包存放在当前项目目录内)或Add External JARs(如果jar包是项目外的本地文件) - 选择对应的edu.duke jar包,点击
Apply保存配置后重新运行即可
- 右键
额外注意事项
你当前的代码违反了Java语法规范:单个.java源文件中只能存在一个和文件名同名的public类,你需要将WordLengthsTest类单独拆分到名为WordLengthsTest.java的文件中,避免后续出现编译异常。
内容的提问来源于stack exchange,提问作者Gooner Coder
相关产品推荐
相关产品推荐

