java工程中的.classpath<轉載>

來源:互聯網
上載者:User

標籤:額外   settings   專案檔   結構   XML   順序   運行時   指定   sse   

第一部分:
classpath是系統的環境變數,就是說JVM載入類的時候要按這個路徑下去找,當然這個路徑下可以有jar包,那麼就是jar包裡所有的class。 eclipse build path是eclipse工程裡需要的包,也是需要的class,本質上沒什麼區別。 
你可以測試,比如JDK中有個String類,在java.lang中,那麼你自己聲明一個別的包,類叫String,然後打個jar包,將這個jar包所在的路徑複製到classpath中,在系統的那個String前,這時候你在用String類將是用你自己的,
因為類載入器載入掃描路徑是按順序的,找到之前的jar裡有String,就用了。後面的不在查看。 但是同一類名,還看你匯入的包,其實你都可以自己建立一個java.lang包,然後建立一個String類,那就完全冒充JDK的啦  哈哈


第二部分:
每個建立java工程(Project)都預設存在的。

1.指定源檔案位置, 對應工程屬性Java build path中Source項中的一項, kind="src" 指明為源檔案, 源檔案路徑path, output為這條路徑中 源檔案編譯以後class檔案的輸出路徑。

2.指定編譯以後class檔案的預設輸出路徑, 對應工程屬性Java build path中 Source項中的default output path, kind="output"指明為預設 class輸出路徑, path為相應輸出路徑。

3.指定工程所用到的庫檔案或目錄, 對應工程屬性Java build path中 Libraries項中的一項, kind="lib"指明為庫檔案或目錄, path為庫 檔案或目錄位置。



第三部分:eclipse中的.project 和 .classpath檔案的具體作用

.project是專案檔,項目的結構都在其中定義,比如lib的位置,src的位置,classes的位置。如果你的項目中沒有.project檔案,那麼eclipse就不能把它當作一個項目。

.classpath的位置定義了你這個項目在編譯時間所使用的$CLASSPATH。

這些檔案你用文字編輯器就能察看了。在一個項目中點重新整理的目的是為了更新.project檔案中的檔案清單,讓你把不通過eclipse提交到項目的檔案顯示出來。

 

.classpath 檔案
       <?xml version="1.0" encoding="UTF-8"?>
<classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="src" path="test"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
        <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
        <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar">
                <attributes>
                        <attribute name="javadoc_location" value="file:/home/wpc/Work/Apache/dom4j-1.6.1/docs/api$
                </attributes>
        </classpathentry>
        <classpathentry kind="output" path="bin"/>
</classpath>

  從資料上我們容易看出,上面描述了工程的依賴檔案:
源檔案的具體位置(kind="src") 啟動並執行系統內容(kind="con") 工程的library的具體位置資訊(kind="lib") 在每個lib的xml子節點中,有關於它的其它配置資訊(例如我配置的那個"javadoc_location") 項目的輸出目錄(kind="output")

總體上說這個檔案就是配置整個工程的運行環境。

.project 檔案
     <?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>CreateInterpret</name>
    <comment>JavaCC [email protected] 32303037303632392D3130303020437265617465496E746572707265742F777063 </comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>sf.eclipse.javacc.javaccbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>sf.eclipse.javacc.javaccnature</nature>
    </natures>
</projectDescription>

 從資料上看,我們可以瞭解到這些配置主要是描述工程的基本資料:
工程名<name></name> 工程注釋描述<comment></comment> 運行時需要的額外Eclipse外掛程式<natures></natures>,及其具體載入方式資訊<buildSpec></buildSpec>

如果你在開發過程中向工程裡面加入了很多額外的外掛程式,則必然會導致你的Eclipse啟動速度變慢。在這種情況下,你可以到這個檔案裡面去掉一些外掛程式,不過這樣一來你在開啟那些關聯檔案的時候會載入那些外掛程式。

.settings 檔案

     裡面存放各種外掛程式的設定檔。

以上是簡單介紹了Eclipse的Project相關的隱藏設定檔.

 

PS:

我們發現幾個問題,工程名是由.project中的<name>標籤定義的,而不是檔案目錄名;

類路徑是通過classpathentry屬性定義的;

將某個工程作為類路徑是這麼定義的:

<classpathentry combineaccessrules="false" kind="src" path="/Sepsif"/>

其中/Sepsif是與Sepsif Samples同處一個根目錄的另一個工程;

<classpathentry kind="output" path="bin"/>定義的是將class檔案輸出的目錄 

java工程中的.classpath<轉載>

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.