java web項目下的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,很多基本的概念會不理解的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM