J2EE开发InfluxDB相关时报java.lang.NoClassDefFoundError的错误

Scroll Down

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