在开发中,我们经常需要用到第三方开源库,而很多开源库又会关联使用其他的开源库。我们在导入使用这些项目的时候,经常会碰到java.lang.ExceptionInInitializerError这样的错误,继续往后看堆栈信息,我们会看到Caused by: java.lang.NoClassDefFoundError: xxx.xxxx.xxx.xxx。
这种情况大多数是由于你没有导入正确的jar包。
导入jar包需要注意:
- jar包名称 (如缺少org.eclipse.jetty.server.Server,对应导入jetty-server-vx.x.x.jar)
- jar包版本 (一般文档里会有说明需要什么版本,像eclipse-jetty有7.x,8.x,9.x,版本很多),不同版本,实现方式不同,有些类就会找不到