<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的項目修改部署的名字時,java
.mymetedata文件中的context-root的值會相應的變化web