WEB-INFO/lib & build path 的jar包問題

一、build path&WEB-INFO/lib介紹

build path:可以說是引用; 
WEB-INFO/lib:可以說是固定在一個地方; 
eclipse編譯項目的時候是根據build path的,如果不用eclipse來發布項目的話,就會出現找不到jar,tomcat運行項目首先是在它自己的公共lib裏找jar,如果找不到的話就會去項目的WEB-INFO/lib目錄找,如果找不到就報錯。

 

 

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是工程的一部分。

 

二、複製項目,報錯

因爲eclipse把build path的配置寫在了項目的.classpath文件中,add Extenrnal jar將jar包引入到工程,.classpath文件中的內容就會被更新,所以不就會報錯。 
有時直接把jar複製到項目的WEB-INF/lib文件夾中,然後刷新項目,eclipse都會自動把jar在build path中引用。 
如果jar不是在build path裏刪除引用,而是自己直接把jar刪除或者移到另外一個位置,刷新項目就會出現錯誤,要去build path裏把引用刪除。(導入jar包可從此導入)

 

你得首先確定你的是編譯環境報錯,還是程序報錯。 
因爲程序中只認識web-inf/lib中的包。但是編譯環境不是,如果編譯環境在配置中說在某個地方有它要的包,那麼如果那個地方沒有,也會提示警告信息。
如果要在程序中正常運行,那麼不管來自那裏,最後包都是放在web-inf/lib中的。 
建議還是先理解下應用程序中包的組成,如果過於依賴於IDE,很多基本的概念會不理解的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章