解析Myeclipse項目下的.classpath文件


.classpath文件

<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>

1. <classpath kind="src" path="src"> 對應的是source folder類型的目錄,
kind---表示這個classpath的類型,path表示在項目中的路徑,
path使用根目錄的相對路徑(相對.classpath文件本身的相對路徑) ,
myeclipse項目中的src本身就是一個source folder,所以它會自動寫入這個文件中,
如果自己手動建立了一個source folder,這個folder也會寫入這個文件,
形式就是以上形式eg.在項目基礎上新建一個test的source folder,
就會就會成為這樣:
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/></pre><br>

2. <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
這句是表示程序的運行環境 kind="con"---表示classpath的類型,
con即是container,就是程序運行的容器,或者就說是運行環境也OK,
它實際上是在Myeclipse最初的時候要配置installed JREs中指定(一般情況下我們指定的是JDK),
但是這里實際使用的是JDK下的JRE中的jar包,就是JDK_HOME/jre/lib就是對應的這條語句

3. <classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
這句是kind="con"當然和上條一樣,是表示運行時的容器,
一般情況下是java web項目才會有,它是包含了J2EE服務器要使用到的一些jar包,
這個目錄中的jar包是其中最特殊的,那就是它不會在部署項目的時候部署到服務器上去,
因為myeclipse認為這樣的jar包是服務器應該有的,所以這里有時候會出現問題,
就是開發的時候不出現問題,但是部署之后會出錯,就是有的服務器有的jar包並沒有提供,
比如tomcat(因為tomcat並不是專業的web服務器,它只是一個輕量的web容器),這就要區分好開發環境和運行環境

4. <classpathentry kind="lib" path="WebRoot/WEB-INF/lib/bsf-2.3.0.jar"/>
這條語句kind="lib",對應的是classpath中的庫文件,path指定庫文件的路徑,
同樣是相對與項目根目錄的相對路徑

5. <classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
這條表示項目的輸出目錄,整個之前定義的classpath無論是kind='src",kind="con",kind="lib",
在編譯后都會進入到這個目錄中來,在java web中也就是WebRoot/WEB-INF/classes。
同樣使用的path是相對項目根目錄的相對路徑(相對.classpath文件本身的相對路徑),
但是由於J2EE部分的是本身要求web 服務器本身要有那些jar包,所以那個例外不會進行拷貝

classpath是myeclipse重要文件,在進行相關的查找時候要用到
項目根目錄下的".classpath“文件就是保存項目classpath的文件
文件中的 <classpath>... ...</classpath>之間保存各種classpath信息,
kind表示類型,path表示路徑,且使用的都是相對於”.classpath“或者說是項目根目錄的相對路徑

幾種kind的含義
kind=”src" ----對應source folder目錄
kind="con"--項目的容器,一般當是java web項目的時候會有兩個
kind="lib"---項目中使用到的庫文件
kind='output"--輸出目錄,最終編譯后相關文件的目標目錄,myeclipse會自動完成相關的拷貝
最終對於myeclipse的classpath的管理都是通過這個文件實現

-----------------------------------------------------------------------------------------------

myeclipse項目中的.classpath文件:
<?xml version=”1.0” encoding=”UTF-8”?>
<classpath>
<!-- 源碼目錄 -->
<classpathentry kind=”src” path=”src”/>
<!-- JDK運行時容器 -->
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="melibrary.com.genuitec.eclipse.j2eedt.core.MYECLIPSE_JAVAEE_5_CONTAINER"/>
<!-- 以下為類庫path為你自定義的目錄,jar文件的路徑 -->
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sino-base-1.3.2.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sino-bms-1.4.3.jar"/>
<classpathentry kind="lib" path="WebRoot/WEB-INF/lib/sino-frame-1.2.2.jar"/>
<!-- 編譯后輸出class目錄 -->
<classpathentry kind="output" path="WebRoot/WEB-INF/classes"/>
</classpath>

---------------------------------------------------------------------------

.project文件:

<?xml version=”1.0” encoding=”UTF-8”?>
<projectDescription>
<!-- 工程名稱 這里定義的name的值如果已經工作空間的其他項目占用了,
當使用myeclipse的import功能導入項目時,就會導不進來-->
<name>sxVIP</name>
<comment></comment>
<projects></projects>
<!-- 編譯器指定-->
<buildSpec>
    <buildCommand>
        <name>org.eclipse.wst.common.project.facet.core.builder</name>
        <arguments>
        </arguments>
    </buildCommand>
</buildSpec>
<!-- 核心特性 -->
<natures>
    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>com.genuitec.eclipse.ast.deploy.core.deploymentnature</nature>
    <nature>com.genuitec.eclipse.j2eedt.core.webnature</nature>
</natures>
</projectDescription>

--------------------------------------------------------------------------

對於myeclipse工程多了一個(web 應用程序才有)

.mymetadata文件:

<?xml version=”1.0” encoding=”UTF-8”?>
<!--
type : 工程類型              
name : 工程名稱           
id : 工程在工作空間內的唯一標識
context-root : 網站根路徑    
j2ee-spec: J2EE標准       
archive : 打包后war文件
-->

<project-module
type=”WEB”
name=”upload”
id=”myeclipse.1152954865843”
context-root=”/upload”
j2ee-spec=”1.4”
archive=”upload.war”>
<attributes>
    <!-- value : Web根目錄名稱 -->
    <attribute name=”webrootdir” value=”WebRoot” />
</attributes>
</project-module> 
--------------------------------------------------------------------------

當為myeclipse的項目修改部署的名字時,

.mymetedata文件中的context-root的值會相應的變化

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM