Hibernate-core源码中缺少的几个Java类文件
在了解hibernate原理的时候,发现hibernate-core中包是空(如图1:空的antlr包)的,发现导入后会出现某些编译报错的,原因是缺少了几个包,查看包中只有一个简单的html文件,里面写着一句话:
A special package for ANTLR-generated parser classes.
NOTE: The classes in this package are generated from the ANTLR grammar files, do not register them into version control.
大概意思为需要使用ANTLR.jar进行解析*.g的文件,然后拷贝到对应的目录下面
上http://www.antlr.org/官网上下载antlr2.7.6或者在 \hibernate-distribution-3.5.3-Final\lib\required hibernate的目录中找到,然后拷贝到你的jdk安装目录下的lib文件夹中,如C:盘路径则为C:\Program Files\Java\jdk1.6.0_20\lib(如图2:拷贝antlr),鼠标右键计算机(win7为例)--->属性--->高级系统设置--->高级--->环境变量,在已经设置好的ClASSPATH中加入以下语句 %JAVA_HOME%\lib\antlr.jar,%JAVA_HOME%为你的jdk安装目录如C:\Program Files\Java\jdk1.6.0_20,然后保存,运行cmd,到命令提示符界面,跳到hibernate中project文件夹中的antlr文件夹里面,输入以下命令(如图3:输入命令),则会生成相应的Java文件.
对于每个*.g文件,
hql.g(如图4:hql.g生成的文件)会生成这些文件:
hql-sql.g(如图5:hql-sql.g生成的文件)会生成这些文件:(前提必须要先生成hql.g,保留HqlTokenTypes.txt文件)
sql-gen.g(如图6:sql-gen.g生成的文件)会生成这些文件:
order-by.g(如图7:order-by.g生成的文件)会生成这些文件:
order-by-render.g(如图8:order-by-render.g生成的文件)会生成这些文件:(前提必须保留OrderByTemplateTokenTypes.txt)