这是由于java编译后的class文件没有指定正确引起的
项目名称上【右击】--->【Properties】--->【Java Build Path】--->【Source】--->【看看报
NoClassDeFoundError的类是哪一个源目录,并选中】--->【看下面的Default output folder
】--->【发现不是target/classes】--->【Edit】
补充:
maven的"约定优于配置"
所谓的"约定优于配置",在maven中并不是完全不可以修改的,他们只是一些配置的默认值而已。但是使用者除非必要,并不需要去修改那些约定内容。maven默认的文件存放结构如下:
/项目目录
/target/classes 编译之后的class文件
/src/main 工程源代码目录
/src/main/resource 工程的资源目录
/src/test 单元测试目录
/src/main/java 工程java源代码目录
/src/test/java
pom.xml 用于maven的配置文件
/src 源代码目录
/target 输出目录,所有的输出物都存放在这个目录下
每一个阶段的任务都知道怎么正确完成自己的工作,比如compile任务就知道从src/main/java下编译所有的java文件,并把它的输出class文件存放到target/classes中。
对maven来说,采用"约定优于配置"的策略可以减少修改配置的工作量,也可以降低学习成本,更重要的是,给项目引入了统一的规范。