java.lang.NoSuchFieldError 和 NoSuchMethodError

java.lang.NoSuchFieldError

java.lang.NoSuchMethodError

这个错偶尔会遇到,遇到会觉得很莫名其妙,使用Maven的过程中,可能更容易出现。

这个错出现只有一种情况。

你编译和运行使用的不是相同的jar包

运行时的jar包没有包含该字段或方法

所以你IDE中没有任何错误,但是运行就出错。

为什么会这样?

可能有下面两种情况:

  • 你项目中有同一个jar包的不同版本,因此编译和运行时使用了不同的jar包。
  • 你用的maven,项目中的依赖由于使用了不同版本的包,最后打包的时候使用的不是你需要的版本,所以也会出错。

如何解决

知道上面原因后解决起来也容易。

第一种就是检查jar包是否有重复的,只留一个你需要的版本。

第二种Maven的稍微复杂,因为需要找依赖,可能会有依赖的依赖,如果你使用IDEA,你可以右键生成依赖图,使用Ctrl+F搜索包的名字,然后判断屏蔽那些依赖。如果你用的Eclipse,依赖视图可能不如IDEA方便,说不定就得一个个找。

时间: 2024-08-01 20:59:34

java.lang.NoSuchFieldError 和 NoSuchMethodError的相关文章

Caused by: java.lang.NoSuchFieldError: STRING 这是什么异常呢?

问题描述 2010-12-12 23:02:34 org.apache.catalina.loader.WebappClassLoader validateJarFile信息: validateJarFile(D:Tomcat6Tomcat 6.0webappsoa_01WEB-INFlibservlet-api.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/S

with root cause java.lang.NoSuchFieldError: PATCH

问题描述 今天项目出了一个这个错,有哪位朋友知道什么问题,或者告知查找的方向?谢谢!八月26,201410:08:03下午org.apache.catalina.core.StandardWrapperValveinvokeSEVERE:Servlet.service()forservlet[mvc]incontextwithpath[/shopping1.5]threwexception[Servletexecutionthrewanexception]withrootcausejava.la

急救:java.lang.NoSuchFieldError: APPLICATION_CONTEXT_ID_PREFIX

问题描述 做spring+hessian整合项目出现这个错误.怀疑jar包之间冲突,小白请教.下面附上jar包图严重:StandardWrapper.Throwablejava.lang.NoSuchFieldError:APPLICATION_CONTEXT_ID_PREFIXatorg.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:430)atorg

对不起数据工厂构建失败.java.lang.NoSuchFieldError: INTEGER 错误

问题描述 typeExceptionreportmessagedescriptionTheserverencounteredaninternalerror()thatpreventeditfromfulfillingthisrequest.exceptionjava.lang.reflect.InvocationTargetExceptionsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)sun.reflect.NativeMe

JSTL包重复报错java.lang.NoSuchFieldError: deferredExpression

at org.apache.taglibs.standard.tag.common.core.ForEachSupport.release(ForEachSupport.java:178) at org.apache.jasper.runtime.TagHandlerPool.release(TagHandlerPool.java:166) at org.apache.jsp.index_jsp._jspDestroy(index_jsp.java:31) Java EE 5 libraries

exception- java.lang.NoSuchFieldError: INSTANCE 谁帮我看下谢谢

问题描述 java.lang.NoSuchFieldError: INSTANCE 谁帮我看下谢谢 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [com/zhin/ycb/spring/application-spring.xml]: Invocation of

ucene ava web-java.lang.NoSuchFieldError: LUCENE_43

问题描述 java.lang.NoSuchFieldError: LUCENE_43 这个事什么原因?我是菜鸟 解决方案 原因是 jar包重复了

exception-升级ssh整合出现错误java.lang.NoSuchMethodError:

问题描述 升级ssh整合出现错误java.lang.NoSuchMethodError: 下面是控制台打印的信息,麻烦看到的高手帮忙解决: Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in class path resource [cn/com/hope/framework/spring/appl

java se-求助java.lang.NoSuchMethodError问题

问题描述 求助java.lang.NoSuchMethodError问题 All, 新人一枚,在学习过程中出现如题的问题,Java 包Java SE Development Kit8 Update51. 程序如下: public class TestConstruct { public static void main(String[] args) { Person p=new Person(12); p.show("Java construct test display"); } }