在eclipse中把jar包放在/WEB-INF/lib目录下跟把jar包添加到User Library中有什么不同?
我建了一个BBS项目,我把mysql的jar包添加到User Library中再引到build path中会出错。
但是我把mysql的jar包放到/WEB-INF/lib下就不会出问题, 这是为什么?
(不好意思,没分了)

解决方案 »

  1.   

       两者是不同的,下面分别来解释。
       用MyEclipse开发WEB项目的时候,当你把jar文件放到lib目录下的话,MyEclipse会自动的将该jar包放入当前项目的类库中,所以我们就可以直接用该jar包所包含的一些API了。   User Library是指用户的类库,首先你要明确,它是根据路劲来引入的,而不是真正的将jar包拷贝到了你系统的目录中(如果你仔细观察的话就会发现,你用User Library的方法引进jar包的话,项目的大小是不会发生变化的,除了自己做测试外,不建议采用这种方法,原因不言而喻)。虽然这种方法也是将jar包引进了类库中,但是在web应用程序下的lib目录下(如果是tomcat的话,这个lib指的就是应用程序的\WEB-INF\lib)是没有此jar包的(对比下第一种情况),如果此时的jar包只是供一般的java应用程序应用的话,是不会出现错误的;但如果此时的jar包要给web应用程序应用的话,就会出现问题了。   不知道我解释明白没有,请楼主仔细体会,多动手做做实验就会明白了,如果你还有什么不明白的地方可以再问我。
      

  2.   

    楼上,给java应用程序应用和给web应用程序应用有什么区别呢?能否举个例
      

  3.   

    我猜测:你可能是不明白为什么给java(非web)程序就可以吧?
    请你仔细想想普通的java程序(有main方法的)和web应用程序要运行起来的条件,普通的java程序只要虚拟机和相应的jar包就可以了,而web应用程序呢,是不是还需要一个容器才能运行呢,而如果容器的类库中没有jar包,有怎么能运用相应的API呢。通过User Library来引入的jar包是不会放到容器的类库中的,所以也就不能使用它的API了。
      

  4.   

    thanks for your explaination