java.lang.ClassNotFoundException的解决方法

  • Post author:
  • Post category:java


出现这个问题的原因可能很多,但是最终原因都是部署的项目文件中没有这个类包。

那么出错的点在哪呢?逐一排除!

1.首先在项目文件中没有添加相应的jar包,可以在maven dependencis文件夹中看是否有。如果没有,在pom文件添加依赖配置即可;如果有,还是出现问题转第二步

2.在maven的本地仓库中找到对应的jar包文件,双击试图打开它,如果出现报错说文件已经损坏或者不完整(我猜测可能是以前maven下载的时候因为网络的原因中途断掉没有下载完成,

下次pom在maven仓库引入本地jar包的时候不会再从官网下载,直接拿的是上次那个残缺文件,所以会出错),解决办法就是把这个jar包文件删除,重新update pom文件,让maven重新下载这个jar到本地仓库。

如果发现本地仓库的这个jar包打开也不会报错,那么转第三步。

3.最后的原因是没有将maven工程的jar包发布到部署的项目文件中。进入到tomcat的部署路径.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\下检查了一下,发

现工程部署后在WEB-INF文件夹下没有生成lib目录,正常情况下,会生成lib目录并把工程的所有依赖jar包都部署到该目录下。

解决方案:

1).右键点击项目–选择Properties

选择Deployment Assembly,在右边点击Add按钮,在弹出的窗口中选择Java Build Path Entries。如下图所示:

2).点击Next,选择Maven Dependencies

3)点击Finish,然后可以看到已经把Maven Dependencies添加到Web应用结构中了

操作完后,重新部署工程,不再报错了。然后我们再到.metadata.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\目录下,发现工程WEB-INF目录下自动生成了lib目录,并且所有的依赖jar包也都已经部署进来。问题因此解决。