標籤:eclipse java ee library path
MyEclipse 中各種 libraries 的含義
JRE System Library , java EE 5 Libraries , Referenced Libraries這三個都是各種JAR包(庫檔案)的集合名稱,可以任意取,只不過是Eclipse的預設名字罷了.
JRE System Library: 指Java SE 的常用庫檔案集合,建立普通的Java項目均會使用;java EE 5 Libraries: 指Java EE的常用庫檔案的集合,建立Web項目會用到這個庫集合與Java SE的庫檔案集合;Referenced Libraries: 指你項目中所使用的第三方庫檔案集合.如果你把項目所需要的其他JAR包直接加在 項目->屬性->Java Build Path -> Libraries 中的時候,MyEclipse 會自動將這些JAR包歸類到一個集合中, 並取名為 Referenced Libraries , 顯示在項目中.Referenced Libraries是編譯環境下使用的JAR包,所謂編譯環境下使用的JAR包, 就是說你在Eclipse中進行源檔案的編寫的時候,所需要引用到的類都從Referenced Libraries這個集合中的JAR包中拿;WebRoot /web-inf/lib中的JAR包是運行時環境下使用的JAR包,所謂運行時環境下使用的JAR包,就是說你在運行你的項目的時候所需要使用的JAR包的集合;
Java中的Jar是如此的重要,以至於沒有他們,我們就不能做出如此藝術的程式:封裝、模組化、複用等等(無ant、marven方式) 。今天,我就來整理一些有關項目中的jar包添加管理的方法以及常見問題的解決: 1、jar匯入到我們的web項目中的classpath下 1)這裡呢,一種方法是,直接用MyEclipse裡內建的相關的項目jar包,右擊項目“MyEclipse”菜單,選擇對應的jar包就OK了,例“Add Spring Capabilities”,並且可以設定Spring的一些配置資訊,不錯的可視化操作; 2)添加外部的jar包到web項目的lib包下,右擊項目“Properties”-->“Java Build Path”-->“Libraries”選項卡(當然了,此操作下,不僅僅這一種添加jar包的方式); 3)自己手動拷貝jar檔案到項目的lib包下,具體操作只要把要添加的jar檔案拷貝到MyEclipse中的workspace下的lib包裡就好了; 至此,jar檔案的添加就OK了,so easy!jar是加進去了,但這幾種有什麼區別,以後如何管理呢,接下來看看第2點 2、三種jar包添加方式,都行得通,很OK,那麼要如何擇決呢 1)這種方式,jar檔案直接連結到MyEclipse的檔案下,並沒有拷貝到WEB-INF/lib目錄下,不得用項目的發布、移植,可能會出現jar找不到的情形; 2)選擇性比較的強,可以隨意的加jar包,只要在你本機存在就可以了,連結的也是jar檔案的絕對路徑,缺點同1; 3)直接添加到WEB-INF/lib目錄下,移植性強,可操作性也強。 總而言之,第3)種jar包匯入方式,個人覺得還是不錯的了! 3、顯示/隱藏項目裡的jar檔案 不同的開發人員,都有著他固有的習慣,有的人就覺得把jar包顯示在開發視圖裡太礙眼,看起來不舒服,複雜。而有些人呢,他就想研究看看到底運用了哪些技術,導了哪些jar包,並且通過點擊jar包裡的class檔案直接查看源碼(假設先前有匯入源碼)。所以呢,這裡就牽涉到了一個jar包的顯示與隱藏問題了:在Package Explorer這個表單中,右上方有個下拉小三角,點擊-->“Filters”-->“Name filter patterns(matching names will be hidden)”,在這一選項下填有*.jar,勾上複選框即表示這一類的檔案不顯示,多個類型之間可用“,”分隔。 4、在Eclipse工程的Java Build Path設定中,可以通過加入第三方的jar包,但是,我發現是有好幾種方法來完成這個操作的,有“Add jars”,“Add Externel jars”,“Add library”,“Add Classes Loader”等,這幾種方式有什麼區別嗎? add jar是表示從你的工程裡添加JAR,前提是你把jar已經放到自己的工程目錄裡。 add external jar表示這個jar的位置需要URI來定位,需要給出全路徑。 add library 是一些已經定義好的jar的集合,因為它們經常是一起用,所以簡化了些操作,比如你做RCP開發的時候就會有個plugin library包含了運行工程所需要的基本外掛程式。 Add classes Loader -- 這個應該是 add class folder吧?這個跟添加jar是一個意思,就是告訴ClassLoader去哪找class 5.當出現java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener類似這種找不到Listener的異常時,要切記spring的jar包一定要放在工程的lib下這樣才能避免這個錯誤的發生。 補充:雖說無論用什麼方式匯入包在本地運行都是一樣的,但實事上我運行時,有的只有Java Build Path才起作用,有的只有匯入到lib下才行。用Java Build Path匯入包和把包複製到lib下是有區別的,它倆其實不會衝突,也沒有什麼關係的,Java Build Path是我們編譯需要的包,在比如在import ***.***.***時如果沒用Java Build Path匯入包的話類裡面就有紅叉,說不識別這個類;匯入到lib下是程式運行時需要的包,即便用Java Build Path匯入過的包,沒放到lib下,運行項目時會出現ClassNotFoundException的異常。