java.lang.ClassNotFoundException:antlr.ANTLRException

我有一个方法来获得表的第一个结果。

public T LoadFirstData() { T object = null; try { startOperation(); Query query = session.createQuery("from " + type.getName()); object = (T) query.list().get(0); } catch (HibernateException e) { HandleException(e); } finally { HibernateUtil.Close(session); } return object; } 

但是,当我运行该方法时,我有例外

 Exception in thread "main" java.lang.NoClassDefFoundError: antlr/ANTLRException at org.hibernate.hql.ast.ASTQueryTranslatorFactory.createQueryTranslator(ASTQueryTranslatorFactory.java:58) at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:98) at org.hibernate.engine.query.HQLQueryPlan.(HQLQueryPlan.java:80) at org.hibernate.engine.query.QueryPlanCache.getHQLQueryPlan(QueryPlanCache.java:98) at org.hibernate.impl.AbstractSessionImpl.getHQLQueryPlan(AbstractSessionImpl.java:156) at org.hibernate.impl.AbstractSessionImpl.createQuery(AbstractSessionImpl.java:135) at org.hibernate.impl.SessionImpl.createQuery(SessionImpl.java:1760) at DataAccess.WKS.Repositories.WksRepositoryBase.LoadAllData(WksRepositoryBase.java:193) at Run.main(Run.java:13) Caused by: java.lang.ClassNotFoundException: antlr.ANTLRException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 9 more 

我已经在网上搜索了解决方案,我发现所有这些都缺少了antlr jar。 但我已经将jar添加到我的项目中。

jar子列表:

 ant-antlr.jar antlr-4.2.2.jar antlr-runtime-4.2.2.jar asm-attrs.jar asm.jar cglib-2.2.jar commons-collections-3.1.jar commons-logging-1.0.4.jar dom4j-1.6.1.jar hibernate-3.1.jar hibernate3-client.jar hibernate3.jar javassist.jar jboss-client.jar jta.jar log4j-1.2.15.jar ojdbc14-jdbc4.jar ojdbc14.jar slf4j-api-1.5.8.jar slf4j-log4j12-1.5.8.jar 

我能知道我还错过了什么吗?

你的项目中有错误的antlr。

你需要的就是这个。 我希望它有帮助:)

  antlr antlr 2.7.7  

我也看到你使用的是旧版本的hibernate。 最新的一个是

  org.hibernate hibernate-core 4.3.5.Final  

下载最新的hibernate jar