错误java.lang.NoSuchMethodError: antlr.collections.AST.getLine()解决方法

产生的原因主要是:struts包里面有也有个antlr_XXX.jar,与hibernate包里面的冲突了 解决的方法主要是: 右键项目属性,找到java build path,将hibernate包弄到最上边 即可 : 若还不不能解决问题,可以按照下面的步骤: 我用的myeclipse8.6, 装在 D:/MyEclipse8.6/ SSH组合完成后,执行hibernate的HQL查询时,报错: java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 看来是antlr这个语法解析包出错 因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,故要删除前一个低版本的,, struts1.3 和2.1都带有antlr-2.7.2.jar,下面我要把它们都清除了 由于myeclipse 添加的struts性能 不是放在工程lib下的,而是myeclipse自带的,所以删除比较麻烦,我觉得最简单的做法应该是这样: D:/MyEclipse8.6/MyEclipse-8.6/configuration/org.eclipse.osgi/bundles 下搜索antlr-2.7.2.jar 完成后能看到的,都删除掉,(可能有些是在1.3下面的,有些是在2.1下面的) 然后在 D:/MyEclipse8.6/Common/plugins 搜索 *struts*.jar 会发现,出来三个 选中一个文件,打开方式选择压缩包 com.genuitec.eclipse.cross.easystruts.eclipse_8.6.0.me201007231647.jar 在lib下和data/1.3下要删除antlr-2.7.2.jar(这个是删除1.3里面的) 而再打开 com.genuitec.eclipse.struts2_8.6.0.me201007292038.jar data/2.1/core 下删除 antlr-2.7.2.jar (这个是2.1里面的) 好了,这个就从struts1.3和2.1中移除了,因为这两个jar是common目录下的,所以删除了后,再运行myeclipse后, myeclipse就不能再从这两个包中找 antlr-2.7.2.jar 并加载了

posted on 2011-03-16 17:17  newflypig  阅读(191)  评论(0)    收藏  举报

导航