运行完此命令后,我们再来编译,就没有问题了。
编译成功后,接下来就是运行了。既然编译都成功了,那么成功运行不就是顺理成章的事情吗?在运行前要保证开启了SQL Server服务,不然怎么访问数据库呢?在命令窗口中输入如下命令来运行我们的程序:java TestHibernate。
就在你万分激动地等待自己的第一个hibernate程序正确执行的时候,程序却很不“识趣”地报出了错误信息:java.lang.NoClassDefFoundError。
实际上,放置在lib目录下的每个JAR包都要用到。上面的方法解决了类org.dom4j.DocumentException的问题后,但还会有很多Hibernate要用到的,或被Hibernate调用的其他模块要用到的类找不到。这些类都包含在剩下的那些JAR包中。读者可以自己试一下,如果现在运行程序,它还会报错说XX类找不到,我们就又得把这个类所在的JAR包添加到classpath环境变量里。然后又会报错说YY类找不到,直到我们把所有的JAR包都添加进去。为把这些JAR包一次性地添加到classpath中,笔者写了一个批处理文件setclasspath.bat,放置在FirstHibernate目录下。如果你建立的目录和目录结构,以及各文件的存放位置,都与笔者完全一致(包括所在的盘,我这里是E盘),那么这个批处理文件你就可以直接使用。其源码如下(用UltraEdit或Windows记事本等文本编辑器创建一个文本文件,然后将其后缀名改为bat,就能创建一个批处理文件。再用文本编辑器打开就能输入想要执行的DOS命令)。
set classpath=.;E:\DemoPrograms\FirstHibernate\lib\hibernate3.jar;E:\DemoPrograms\FirstHibernate\lib\sqljdbc4.jar;E:\DemoPrograms\FirstHibernate\lib\dom4j-1.6.1.jar;E:\DemoPrograms\FirstHibernate\lib\slf4j-api-1.6.2.jar;E:\DemoPrograms\FirstHibernate\lib\slf4j-simple-1.6.2.jar;E:\DemoPrograms\FirstHibernate\lib\hibernate-jpa-2.0-api-1.0.1.Final.jar;E:\DemoPrograms\FirstHibernate\lib\cglib-2.2.jar;E:\DemoPrograms\FirstHibernate\lib\commons-collections-3.1.jar;E:\DemoPrograms\FirstHibernate\lib\javassist-3.12.0.GA.jar;E:\DemoPrograms\FirstHibernate\lib\jta-1.1.jar 现在再来运行程序。
作者:肖凡