溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

eclipse項(xiàng)目中的.classpath文件有什么用

發(fā)布時間:2021-12-31 14:12:45 來源:億速云 閱讀:147 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹eclipse項(xiàng)目中的.classpath文件有什么用,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!

    1 前言

    在使用eclipse或者myeclipse進(jìn)行java項(xiàng)目開發(fā)的時候,每個project(工程)下面都會有一個.classpath文件,那么這個文件究竟有什么作用?

    2 作用

    .classpath文件用于記錄項(xiàng)目編譯環(huán)境的所有信息,包括:源文件路徑、編譯后class文件存放路徑、依賴的jar包路徑、運(yùn)行的容器信息、依賴的外部project等信息。如果把該文件刪除,則eclipse不能講該工程識別為一個正常的java工程,僅僅當(dāng)做普通的文件夾而導(dǎo)致不能正常運(yùn)行。

    3 .classpath內(nèi)容

    .classpath文件其實(shí)也是一個xml格式的內(nèi)容文件,其具體內(nèi)容大致如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <classpath>
        <classpathentry kind="src" path="src"/>
        <classpathentry kind="src" path="resource"/>
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7">
            <attributes>
                <attribute name="owner.project.facets" value="java"/>
            </attributes>
        </classpathentry>
        <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/學(xué)習(xí) 8080">
            <attributes>
                <attribute name="owner.project.facets" value="jst.web"/>
            </attributes>
        </classpathentry>
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
        <classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
    </classpath>
    • ①以”classpath”為根節(jié)點(diǎn),每個“classpathentry”節(jié)點(diǎn)代表一個說明信息。

    • ②每個“classpathentry”以“kind”屬性指明類型,“path”指明路徑。

    • ③以上文件的所有內(nèi)容,都是依賴項(xiàng)目中的“Java Build Path”內(nèi)容改變而改變的,即對“Java Build Path”的所有操作都會反應(yīng)到文件內(nèi)容中。

    eclipse項(xiàng)目中的.classpath文件有什么用

    現(xiàn)在來具體分析文件內(nèi)容的每個節(jié)點(diǎn)含義

    3.1 kind="src"

    src:即source 源文件,代表的是一個源文件,path=”src”是一個相對路徑,相對.classpath文件本身,即path=”src”表示文件夾src與.classpath在同一個目錄,且代表源文件。

    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="resource"/>

    kind=”src”的操作對應(yīng)于“Java Build Path”的“Source”tab頁

    eclipse項(xiàng)目中的.classpath文件有什么用

    如下圖,增加一個文件夾bin作為源文件,則.classpath文件增加內(nèi)容

    eclipse項(xiàng)目中的.classpath文件有什么用

    內(nèi)容增加如下:

    <classpathentry kind="src" path="src"/>
    <classpathentry kind="src" path="bin"/>
    <classpathentry kind="src" path="resource"/>

    當(dāng)然,做相應(yīng)修改或刪除,同樣.classpath文件內(nèi)容會相應(yīng)改變。

    另外,當(dāng)指定屬性combineaccessrules=”false”是則代表引入外部project,具體如下

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

    對應(yīng)頁面tab,其中path=”/mybatis”,是相對應(yīng)workspace下的

    絕對路徑。

    eclipse項(xiàng)目中的.classpath文件有什么用

    3.2 kind="output"

    output用于指定java源文件編譯后的class文件存放路徑,格式如下

    <classpathentry kind="output" path="WebContent/WEB-INF/classes"/>

    path:代表存放class文件路徑,同樣是相對.classpath文件的路徑,找到“WebContent/WEB-INF/classes”,可以看到class文件的存放

    eclipse項(xiàng)目中的.classpath文件有什么用

    假設(shè)修改輸出文件路徑,則相應(yīng)內(nèi)容也會改變

    改為:spring-mybatis\WebContent\WEB-INF\newclasses

    eclipse項(xiàng)目中的.classpath文件有什么用

    則.classpath文件內(nèi)容修改為:

    <classpathentry kind="output" path="WebContent/WEB-INF/newclasses"/>

    實(shí)際存放class文件的路徑也會改變

    eclipse項(xiàng)目中的.classpath文件有什么用

    3.3 kind="con"

    con即是container,就是程序運(yùn)行的容器,或者就說是運(yùn)行環(huán)境也OK,它實(shí)際上是在Myeclipse最初的時候要配置installed JREs中指定(一般情況下我們指定的是JDK),但是這里實(shí)際使用的是JDK下的JRE中的jar包,就是JDK_HOME/jre/lib就是對應(yīng)的這條語句。具體內(nèi)容如下

    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7">
            <attributes>
                <attribute name="owner.project.facets" value="java"/>
            </attributes>
        </classpathentry>
        <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/學(xué)習(xí) 8080">
            <attributes>
                <attribute name="owner.project.facets" value="jst.web"/>
            </attributes>
        </classpathentry>
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>

    對應(yīng)操作tab如下

    eclipse項(xiàng)目中的.classpath文件有什么用

    3.3.1 JRE配置

    path=”XXX”用于指定jre容器的使用情況,可選擇jre的不同來源,不同來源path的實(shí)際值會有些變化

    eclipse項(xiàng)目中的.classpath文件有什么用

    ①選擇”Workspace default JRE(jdk1.7)”,則值為

    path="org.eclipse.jdt.launching.JRE_CONTAINER"

    ②選擇“Alternate JRE”,則值為

    path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7"

    其中最后么的jdk1.7是我自定義的JRE名稱

    ③選擇”Execution environment”,即選擇eclipse自帶的內(nèi)置jre,值為

    path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"

    其中最后么的JavaSE-1.7是系統(tǒng)內(nèi)置的JRE名稱

    另外屬性值name=”owner.project.facets”

    <attribute name="owner.project.facets" value="java"/>

    應(yīng)該是指定JRE容器的具體使用的模板,默認(rèn)使用”java”,具體的沒有探究。

    3.3.2 Server Runtime配置

    同理,其他容器配置同上,如對Server Runtime 容器的配置,下面配置了tomcat容器運(yùn)行環(huán)境

    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/學(xué)習(xí) 8080"/>
    3.3.3 Web App Libraries配置
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
    3.3.4 User Library配置
    <classpathentry kind="con" path="org.eclipse.jdt.USER_LIBRARY/tomcat7"/>

    3.4 kind="lib"

    kind="lib"用于指定project依賴的Referenced Libraries,如圖增加了一個jar包

    eclipse項(xiàng)目中的.classpath文件有什么用

    則相應(yīng).classpath文件內(nèi)容增加

    <classpathentry kind="lib" path="WebContent/WEB-INF/lib/commons-dbcp-1.2.1.jar"/>

    其中path指定了依賴的jar的相對路徑。

    3.5 順序

    .classpath文件中各節(jié)點(diǎn)的順序是通過tab-Order and Export 來控制的,不同的順序可能會引起加載class文件問題,一般是源碼放在最前面。

    eclipse項(xiàng)目中的.classpath文件有什么用

    以上是“eclipse項(xiàng)目中的.classpath文件有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

    向AI問一下細(xì)節(jié)

    免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

    AI