解析Myeclipse项目下的.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的管理都是经过这个文件实现
View Code

 

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> 
View Code

 当为myeclipse的项目修改部署的名字时,java

.mymetedata文件中的context-root的值会相应的变化web

相关文章
相关标签/搜索