J2EE开发InfluxDB相关时报java.lang.NoClassDefFoundError的错误
本文主要是记录我在发生该异常抛出时的原因和做法,希望与我情景相同的同学能得到帮助~
异常原因:
java.lang.NoClassDefFoundError就是jdk在编译项目时找得到你所使用的依赖包所以编译通过,但是在程序运行时却找不到你的依赖包(即便编译通过)
为什么:
最近在做关于Servlet的相关开发,eclispe在新建JAVAWeb项目时会自动新建帮助部署与开发的文件和文件夹 而在做数据库及其他需要依赖第三方包的开发时我偷懒了:
哈哈哈哈哈哈我相信有不少都是跟我一样直接在文件夹把jar包拖入到项目下,然后在配置里加上jar包,
这也就是为什么会报异常的原因!!!!
在加完jar包之后项目中的ReferencedLiberaries下就会出来你加入的jar包
在一般的项目中这样的做法是没事的 但是在Servlet中编译运行后就会报异常(在做InfluxDB的开发时是这样的,其他情况我不清楚打架可以自己去研究) eclipse部署的Servlet在运行时会在WebAppLibraries内使用依赖包,而直接拖入并没有
解决办法:
在WebContent/Web-INF文件夹下新建一个lib文件夹,然后拖入所有的依赖包即可
eclipse会在你在lib文件夹下加入jar包后自动引用到WebAppLibraries内
测试一下↓
其实这个异常我调了四五天,一直以为是依赖包版本的问题,后来问了我高中的导师才知道,servlet运行时使用的jar是要放在lib文件夹下的。。。。。哈哈哈哈哈哈哈哈哈哈哈对于开发者来说不仅是时间和年龄,经验也是很重要的! 希望大家没有修不好的BUG
冶心·练体·得技