0 0

eclipse的工程的build path引用的jar和工程的webinfo/lib包下所包含的jar包的作用有什么区别?10

eclipse的工程的build path引用的jar和工程的webinfo/lib包下所包含的jar包的作用有什么区别?
问题补充:
我遇到的一个问题是,lib中缺失一个jar,当我直接把这个包拷到工程的lib目录时,clean工程rebuild,还是会报错误,但是我通过build path的add Extenrnal jar将jar包引入工程,自动编译,则工程不报错.想请教下,这是什么原因.
2009年12月03日 16:48

11个答案 按时间排序 按投票排序

0 0

采纳的答案

因为eclipse把build path的配置写在了项目的.classpath文件中,add Extenrnal jar将jar包引入到工程,.classpath文件中的内容就会被更新,所以不就会报错。
有时直接把jar复制到项目的WEB-INF/lib文件夹中,然后刷新项目,eclipse都会自动把jar在build path中引用。
如果jar不是在build path里删除引用,而是自己直接把jar删除或者移到另外一个位置,刷新项目就会出现错误,要去build path里把引用删除。

2009年12月04日 14:13
0 0

就放在lib目录下,这样方便!

2009年12月07日 19:46
0 0

拷到lib目录下还不够,还要将build Path里的路径设置为引用lib目录下的路径。
选择:bulid path->Add JARs->选择你的工程,找到lib目录,找到你拷贝进来的jar,这里只显示还未加进工程引用的jar,已经添加引用的是不会显示的!找到后,确定。

2009年12月04日 14:44
0 0

引用
工程不报错

这是你说,可是你得首先确定你的是编译环境报错,还是程序报错。
因为程序中只认识web-inf/lib中的包。但是编译环境不是,如果编译环境在配置中说在某个地方有它要的包,那么如果那个地方没有,也会提示警告信息。
如果要在程序中正常运行,那么不管来自那里,最后包都是放在web-inf/lib中的。
建议还是先理解下应用程序中包的组成,如果过于依赖于IDE,很多基本的概念会不理解的。

2009年12月04日 14:41
0 0

把这个包拷到工程的lib目录下时,eclipse不会自己把这个jar当成类路径中的jar包,必要通过build path加入的jar才能被工程使用

2009年12月04日 14:15
0 0

也就是说  如果你现在把 没有问题的工程里 后加的buildpath那个包删除  然后在lib下放入 。。还会报错?   你试验下 报的还是找不到类文件么?  把错 发出来!看下!
顺便说下   楼上说的都没有错  蔡华江朋友 说的 和楼上所有的答案  并没有什么大分歧啊    呵呵  大家说的并没有冲突啊

2009年12月04日 14:03
0 0

好像所有楼上的全说错了,,实质上两者没有区别,因为对于web工程来说,最后的jar包都会被打进web-inf/lib中去的,所以没有区别。有两个例外的是,一个是普通JAVA工程,这个根本就没有web目录。另一个就是企业级应用,这用的jar包可能不是打进web应用,而是ejb就用。
如果说还有没有例外,那就是将lib路径或class信息进行过手工配置,如MATA-INF中配置,中间件/web容器中配置。当然这种情况比较少见,对于eclipse来说,通常应用中的jar包都是打进web-inf/lib中去的,对于引用的路径时区别只是在进行开发中可见的。

2009年12月03日 19:26
0 0

build path:可以说是引用;
WEB-INFO/lib:可以说是固定在一个地方;
eclipse编译项目的时候是根据build path的,如果不用eclipse来发布项目的话,就会出现找不到jar,tomcat运行项目首先是在它自己的公共lib里找jar,如果找不到的话就会去项目的WEB-INFO/lib目录找,如果找不到就报错。

2009年12月03日 19:09
0 0

这是由eclipse来决定build path的来构建程序

2009年12月03日 17:41
0 0

如果你弄的是B/S的话 一般建议和楼上一样  如果C/S的话 就得放在BUILDPATH下和WEBINFO/LIB下了 因为C/S分为客户端和服务端 这两个地方加载的包不同 所以你必须得分开 而且各自放各自的JAR包    在buildpath下解决JAR冲突的办法是可以调整类的加载顺序 只要把你要加载的类提前 他就会先加载你提前的类 也就不会导致JAR冲突了  当然最好养成有规律的放JAR包的习惯

2009年12月03日 17:39
0 0

build path引用的jar可以引用lib下的jar,也可以引用硬盘上任何可以访问位置上的jar,但是,我推荐把需要的jar都放到lib下,这样一旦发生jar包冲突、缺失的问题,我们可以直接到lib下查看,如果放到其它位置,检查起来则相对麻烦。

放到lib下也是一个好习惯,引用其它位置的jar【通常某些同学喜欢用myeclipse自动添加对struts、spring、hibernate的支持】,使用这种方式,很容易造成jar包冲突、缺失的问题,尤其是团队协作的情况下,如果你引用了本地硬盘上的某个jar,提交了.classpath文件到svn,别人检出后,就会报错,因为他的硬盘上的同一位置没有这个jar,而如果你放到lib下,再提交,检出后他的lib下是有这个jar的,因为lib是工程的一部分。

2009年12月03日 16:57

相关推荐

Global site tag (gtag.js) - Google Analytics