解决maven 项目中的 java.lang.NoClassDefFoundError

原创
2016/03/07 18:27
阅读数 4.5K

 

这是由于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来说,采用"约定优于配置"的策略可以减少修改配置的工作量,也可以降低学习成本,更重要的是,给项目引入了统一的规范。




展开阅读全文
打赏
1
3 收藏
分享
加载中
更多评论
打赏
0 评论
3 收藏
1
分享
返回顶部
顶部