1. 程式人生 > >eclipse與intellij idea中的classpath分析

eclipse與intellij idea中的classpath分析

初學Spring框架的時候,對eclipse和intellij idea中的classpath的定義不是很理解,每次都是懵懵懂懂地使用,這裡將進行一次細緻的討論。

1. 什麼是classpath?

    classpath相當於Java執行環境,它指定了一些常用的包或jar的位置,方便我們對專案檔案的使用,而不必重複多次寫所需要檔案的位置。
    在classpath中可能需要使用所有相同名字的資原始檔,如果用classpath:只會載入第一個,而使用classpath*:字首則能夠載入所有符合型別的檔案。然而,使用classpath*:需要遍歷所有的classpath,載入速度很慢,因此您應該儘量避免使用classpath*。


2.eclipse中的classpath分析

    在eclipse下的Spring專案中,有一個.classpath檔案,裡面配置了整個專案的執行環境(如下圖所示)。

程式碼解釋:(轉載於http://mingyundezuoan.iteye.com/blog/2224973)

    kind: 
        src:原始檔的具體位置,對應java build path操作中source中的一項路徑。
        con:執行的系統環境。
        lib:庫檔案或目錄, path為庫檔案或目錄位置。注意: 當指定庫檔案時(非庫目錄, 通常是jar包), 應當包             含檔名。
        output:指明為預設class輸出路徑, path為相應輸出路徑。注意: 這一條在檔案中有且只能有一條。
        var:指定工程所用到的庫檔案或目錄, 對應工程屬性Java build path中Libraries項中的一項,指明帶有全             局編譯路徑中設定的變數(Window->Prefrences->Java->Build Path->Classpath Variables),path為             這個變數目錄下的庫檔案。

    path:原始檔路徑。
    output:為這條路徑中原始檔編譯以後class檔案的輸出路徑,對應java build path操作中source選項面板下方            default output path ,所指代的路徑。

    including:額外包含其他目錄下的所有java檔案。
    excluding:不包含的檔案。

3.intellij idea的classpath分析

    首先在開啟的專案視窗開啟File->Project Structure...,得到如下圖所示的專案結構:

    

    在最上面一欄可以看到這裡是Source標籤中的詳細資訊,在右邊可以看到專案裡面目錄的型別,有Source Folders、Resource Folders等等,這裡指的是Source Folders表示的都是程式碼原始檔目錄,生成的class檔案會輸出到target->classess資料夾中,但是裡面的原始檔不會複製到target->classes資料夾中,Test Source Folders表示的都是測試程式碼原始檔目錄,生成的class檔案同樣會輸出到target->classess資料夾中,並且裡面的原始檔不會複製到target->classes資料夾中,

而Recource Folders表示的都是資原始檔目錄,這些目錄裡面的檔案會在程式碼編譯執行被直接複製到target->classess資料夾中。可以這麼講,target->classes即為classpath,任何我們需要在classpath字首中獲取的資源都必須在target->classes資料夾中找到,否則將出現java.io.FileNotFoundException的錯誤資訊。

    如果您在專案中想新增一些自己的目錄到Source Folders、Resource Folders這樣的目錄分類裡來實現編譯過後正確地檔案輸出,則可以點選需要設定的資料夾,再在檔案結構視窗上方的Make as:後面選擇正確的目錄型別即可。