.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的值會相應的變化