antlr.collections.AST.getLine()I異常

坑爹啊,弄了一下午,以爲是代碼問題呢!在網上搜了之後原來是這個原因,記下來以備後用!

我用的myeclipse8.6, E:\Program Files (x86)\MyEclipse 8.6

SSH組合完成後,執行hibernateHQL查詢時,報錯:

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

看來是antlr這個語法解析包出錯,

關閉myeclipse8.6

因爲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自帶的,,所以刪除比較麻煩,,我覺得最簡單的做法應該是這樣:

E:\Program Files (x86)\MyEclipse 8.6\configuration\org.eclipse.osgi\bundles 下搜索antlr-2.7.2.jar

完成後能看到的,都刪除掉,,(可能有些是在1.3下面的,有些是在2.1下面的)

然後在 E:\Program Files (x86)\MyEclipse 8.6\Common\plugins   搜索 *struts*.jar   會發現,如果沒有該文件夾在C:\Users\Administrator\AppData\Local\Genuitec\Common找。出來三個

選中 其中的文件,打開方式選擇壓縮包,用winRAR的打開

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.32.1中移除了,,因爲這兩個jarcommon目錄下的,所以刪除了後,

再運行myeclipse後,重新部署就可以了!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章