這幾天在使用junit時對項目進行測試時要讀取spring的設定檔,始終讀不到,而且一直使用使用eclipse,就看看它是怎麼管理項目的classpath的。
版本:myeclipse 8.0
首先在我們在建立一個workspace的時候就會在建立的workspace目錄下建立一個.metadata,我們稱這個建立的workspace為W吧。這個檔案夾主要是放了eclipse的W這個工作區間的一些基本配置,我估計我們在W下修改一些eclipse的配置最終會寫到這個檔案夾的摸個檔案中去,這樣eclipse在下次進入在W時我們之前的設定才會一直有效,這也說明了我們建立一個工作區間那麼以前設定的都沒有用了,應為讀取的不是一個.metadata裡的檔案。
說多了,先看看.metadata檔案夾的目錄。
.metadata目錄下有2個檔案夾和3個檔案,2個檔案夾分別是.me_tcat和.plugins,這兩個檔案夾看名字都能大概猜出是什麼。.me_tcat檔案夾是myeclipse內建的tomcat的發布的目錄,進去後你會發現tomcat熟悉的檔案夾webapps
對,我們用myeclipse內建的tomcat發布web項目時就是放在這裡的;而.plugins看名字也可以猜出是存放的一些個外掛程式
設定檔,也就是我們做的一些設定,這麼沒有去深究。接下來看看剩下的3個檔案,分別是.lock、.log、version.ini,首先那個.lock檔案還不知道是幹什麼,開啟是個空白,上網查了下沒有查到,有時間上官網上看看,下面說說.log這個檔案,這個檔案比較重要,看名字就知道是記錄日誌用的,記錄的是myeclipse發生錯誤時的錯誤資訊,我有一次就是通過這個log檔案解決了一個myeclipse的問題,version.ini看名字是記錄版本的。好了.metadata說完了。我們這說的是建立workspace的情況下,用了一段時間後你會發現.bak_0.log、.bak_1.log這樣的檔案,這是對日誌的備份吧。
下面我們來建立一個簡單的項目,進入建立的專案檔夾後,發現有一個.settings檔案夾和.classpath、.project兩個檔案,.settings裡面放的這個項目相關的資訊,比如用的java版本是多少。下面就是.classpath了,開啟你就大致明白了eclipse的classpath相關的問題了。這個檔案有這個幾個屬性
<classpathentry excluding="*.txt" kind="src" path="src"/> king表示的是種類,path是路徑
king="src"表示path所指的目錄下的是源碼
king="con"表示是eclipse的jar包,
king="lib"表示是我們開發人員在項目中使用的第三方jar包
king="var"表示的也是開發人員項目使用的jar包,和lib不同的是var的path中有JAVA_HOME這樣的在classpath中定義了的,而lib的path是使用的絕對路徑,比如c:/myjar/jdbc.jar
king= "output" 表示編譯的class輸入的path。
excluding表示該path下的符合excluding後面的值的檔案不被包含在classpath下,
好了大概說完了。
今天就遇到個eclipse讀jar包出錯的問題,影響是我在使用myeclipse的時候使用alt+/時老彈個框框,搞得很鬱悶,最後查到看看.log檔案知道是對一個jar讀寫失敗,找到那個jar包後發現這個jar已經損壞了,重新下了個,ok問題解決了。