一般有两种方式添加JAR包:
1. 通过右键点击工程,buildpath引入JAR包。
2. 直接把JAR包复制到lib文件夹下面,然后add into buildpath。
正常情况下,以上两种方式都可以达到目的,但这两种方式确有不同之处,这也是在想我这样的菜鸟水平时经常引起不解的地方,下面来讲一下它们之间的不同之处,第一种方式,其实是把JAR包所在的路径加入到ClassPath下面,但是JAR包本身并不在项目的ClassPath下面。这一点你可以打开项目下面的.classpath文件看一下,有类似下面的内容:
<classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/HIBERNATE"/>
(这里HIBERNATE是自己创建的一个USER_LIBRARY,JAR包都引用在这个下面)
第二种方式,是把JAR包直接复制到项目的lib文件里,简言之,此时这些JAR包也属于当前工程的一部分了(第一种方式只是引用而已),这一点可以打开项目下面的.classpath文件看一下,有类似下面的内容:
<classpathentry kind="lib" path="WEB-INF/lib/log4j-1.2.15.jar"/>
<classpathentry kind="lib" path="WEB-INF/lib/hibernate3.jar"/>
<classpathentry kind="lib" path="WEB-INF/lib/slf4j-log4j12-1.6.0.jar"/>
刚入门的同志们可能会遇到下面的情况:
用第一种方式,如果是web工程的话,一旦启动服务(比如tomcat),访问页面,就会报出一些异常:意思就是缺少某某JAR包,此时大多数人就会有疑问(JAR包已经加进去了啊???),原因其实很简单,tomcat会先去自己的公共lib包里找,没有的话,再去项目的lib包里找,再没有就会报错,所以最好的方案就是复制需要的JAR包到项目的lib包下面(第二种方式),这样JAR包也会被打进War包,在不同的机器跑工程的话,也不会因缺少JAR包跑不起来。