不久前,在开发过程当中,将写好的项目A编译成jar包,放到其余的项目上用的时候(直接引用,而不是使用依赖管理工具),出现以下的错误:java
错误的全称:java.lang.NoClassDefFoundError,这是一个运行时错误,在编译的时候并不发生。困扰了我好一下子。工具
原来是原来是项目A编译成的jar包所依赖的jar包不存在。添加就能够了。spa
NoClassDefFoundError错误的发生,是由于Java虚拟机在编译时能找到合适的类,而在运行时不能找到合适的类致使的错误。例如在运行时咱们想调用某个类的方法或者访问这个类的静态成员的时候,发现这个类不可用,此时Java虚拟机就会抛出NoClassDefFoundError错误。简单总结就是,NoClassDefFoundError发生在编译时对应的类可用,而运行时在Java的classpath路径中,对应的类不可用致使的错误。.net
发生错误可能的缘由以下:日志
若是想了解更多关于NoClassDefFoundError的发生机制和解决方法,能够参考下面这篇blog:blog
http://blog.csdn.net/angel_g/article/details/54235701开发
本篇blog的部份内容也是来自于这篇blog, 特在此声明。get
end虚拟机