maven问题ClassNotFoundException或NoClassDefFoundError解决

时间:2024-01-22 07:15:30

最近在做项目时老是遇到ClassNotFoundException、NoClassDefFoundError。对这些问题进行初步总结。

1.ClassNotFoundException

1.1 检查jar相应jar包是否已经引入

      例如,idea 使用ctrl+n查看工程中是否有该类,进入该类查看jar包是否被引入进相应工程。

1.2. jar包冲突

     a. 先得知该类所在jar包。例如,idea 使用ctrl+n查看工程中那些jar包有该类存在。

     b.然后使用maven命令mvn dependency:tree 查看项目依赖树。

    c.根据工程决定jar包取舍。

       例如a.jar 依赖 s 版本为1, b.jar含有s版本为2。现在要决定使用b.jar。使用exclusions去除a.jar得依赖下冲突解决。

  还可以通过jar包“短路优先”、“先声明优先”解决。

 1.3 maven依赖得jar为scope=provided

 依赖由容器提供,即需要maven工程其他jar间接引入或者单独引入

2. NoClassDefFoundError

2.1 类中静态代码块运行抛出未捕获异常。

  静态代码块捕获异常。

2. 静态方法无法有依赖问题。例如静态方法参数类找不到,或者参数类冲突。

  debug定位到具体静态方法。解决依赖冲突问题。

 

 

   

 

posted on 2018-11-27 22:38 NullToValue 阅读(...) 评论(...) 编辑 收藏