Eclipse中的.project文件、classpath文件

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
  <name>jeesite</name>
  <comment>NO_M2ECLIPSE_SUPPORT: Project files created with the maven-eclipse-plugin are not supported in M2Eclipse.</comment>
  <projects/>
  <buildSpec>
    <buildCommand>
      <name>org.eclipse.jdt.core.javabuilder</name>
    </buildCommand>
    <buildCommand>
      <name>org.eclipse.wst.common.project.facet.core.builder</name>
    </buildCommand>
    <buildCommand>
      <name>org.eclipse.wst.validation.validationbuilder</name>
    </buildCommand>
  </buildSpec>
  <natures>
    <nature>org.eclipse.wst.common.project.facet.core.nature</nature>
    <nature>org.eclipse.jdt.core.javanature</nature>
    <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
    <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
    <nature>org.springframework.ide.eclipse.core.springnature</nature>
  </natures>
</projectDescription>

主要是描述工程的基本信息:

工程名<name></name>

工程注释描述<comment></comment>

运行时需要的额外Eclipse插件<natures></natures>,及其具体加载方式信息<buildSpec></buildSpec>

如果你在开发过程中向工程里面加入了很多额外的插件,则必然会导致你的Eclipse启动速度变慢。在这种情况下,你可以到这个文件里面去掉一些插件,不过这样一来你在开启那些关联文件的时候会加载那些插件。

.project文件:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
	<!-- 工程名称 -->
	<name>TestProject</name>
	<comment></comment>
	<projects>
	</projects>
        <!-- 编译器指定 -->
	<buildSpec>
		<buildCommand>
			<name>org.eclipse.jdt.core.javabuilder</name>
			<arguments>
			</arguments>
		</buildCommand>
	</buildSpec>
        <!-- 核心特性 -->
	<natures>
		<nature>org.eclipse.jdt.core.javanature</nature>
	</natures>
             <linkedResources>
		<link>
			<name>JavaSrc</name>
			<type>2</type>
			<location>D:/workspace/study/petstore/src</location>
		</link>
	</linkedResources>
</projectDescription>

数据上看,我们可以了解到这些配置主要是描述工程的基本信息:

工程名<name></name>

工程注释描述<comment></comment>

运行时需要的额外Eclipse插件<natures></natures>,及其具体加载方式信息<buildSpec></buildSpec>

链接工程外部的资源<linkedResources></linkedResources>,链接后可以看做是在本工程的资源来使用,但并不在本地创建相应的资源。<name>JavaSrc</name>为本工程显示的资源名称;<type>2</type>资源类型(1--文件,2--目录。貌似除了1表示文件,x.x形式的带小数点的都表示文件,无论小数点后有几位和小数点前的数有多大);<location>D:/workspace/study/petstore/src</location>为工程外部链接的资源。

.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH

1.源文件的具体位置(kind="src")

2.运行的系统环境(kind="con")

3.工程的library的具体位置信息(kind="lib")

4.在每个lib的xml子节点中,有关于它的其它配置信息(例如我配置的那个"javadoc_location")

5.项目的输出目录(kind="output")

 

 

 

 

 

1、.classpath文件时eclipse新建web工程的时候生成的一个文件,改变java Build path的时候或者改变加载的jar包顺序的时候,这个文件也会改变。

2、.classpath文件不能随意删除。个人在将已有的工程import进入eclipse工作区的时候将.classpath文件删除了,然后再重新导入jar包,整个工程就会重新编译,也就会产生.classpath文件,但是这个重新生成的.classpath文件的内容可能就会出问题,也就有可能导致在tomcat部署的时候出现不可预料的问题。

例如:

   原始的.classpath文件部分主要内容如下:

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

 

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

 

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

   个人删除后,eclipse重新build的.classpath文件部分主要内容如下:

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

 

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_11"/>

 

<classpathentry kind="output" path="/bin"/> 

比较前后两个.classpath文件可以发现,重新build的.classpath文件里面的源文件地址为 <classpathentry kind="src" path=""/>,这样,在整个工程里面就会出现所有package错误,此时eclipse默认为package src.com.test, 而工程里面正确的包名应该是 package com.test   

 

说明下:<classpathentry kind="src" path="src"/> 表示工程源文件的地址;  

        <classpathentry kind="output" path="/bin"/>表示产生的class文件地址;  

 

另外,如果新生成的.classpath文件class文件地址为bin目录下的,即<classpathentry kind="output" path="/bin"/> ,tomcat部署工程的时候,默认去WebRoot/WEN-INF/classes这个目录查找class文件,而此时class文件去不存在于bin目录下面,故而tomcat下面没有class文件,在启动时也就会产生ClassNotFoundException错误!  

 

 

 

 

 

 

 

<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

每个新建java工程(Project)都默认存在的。

 

<classpathentry kind="src" ōutput="km230/apitest/classes" path="km230/apitest/src"/>

指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 

源文件路径path, output为这条路径中源文件编译以后class文件的输出路径。

 

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

指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 

源文件路径path, 编译以后class文件的输出路径为默认输出路径。

 

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

指定编译以后class文件的默认输出路径, 对应工程属性Java build path中Source项中的default output path, 

kind="output"指明为默认class输出路径, path为相应输出路径。

注意: 这一条在文件中有且只能有一条(不可能同时出现两个默认吧?).

 

<classpathentry kind="lib" path="km230/lib/Notes.jar"/>

指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项, 

kind="lib"指明为库文件或目录, path为库文件或目录位置。

注意: 当指定库文件时(非库目录, 通常是jar包, 好像zip也可以, 不知道是否还有其它), 应当包含文件名。

 

<classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.0.0/src/org.junit_3.8.1/junitsrc.zip"/>

指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项, 

kind="var"指明带有全局编译路径中设置的变量(Window->Prefrences->Java->Build Path->Classpath Variables), 

如上面的ECLIPSE_HOME, path为这个变量目录下的库文件(同样通常是jar包, 好像zip也可以, 也不知道是否还有其它)。

 

 

 

 

 

 

 

eclipse工程中.classpath文件含义: 

下面是一个.classpath文件内容: 

 

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
        <!-- 源码目录 --> 
        <classpathentry kind="src" path="src"/> 
 
 
        <!-- 工程引用外部lib目录(最好用相对路径) -->         
        <classpathentry kind="lib" path="G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar"/> 
        <classpathentry kind="lib" path="lib/xstream-1.3.1.jar"/> 
        <classpathentry kind="lib" path="lib/xpp3_min-1.1.4c.jar"/> 
        <classpathentry kind="lib" path="lib/commons-logging.jar"/> 
        <classpathentry kind="lib" path="lib/htmlparser.jar"/> 
        
        <!-- JDK编译时容器,建立好java项目后自动产生的 --> 
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_06"/> 
        <!-- class 目录,对于web工程的path就是WebRoot/WEB-INF/classes了 --> 
        <classpathentry kind="output" path="bin"/> 
</classpath> 

 

 

说明: 

1、<classpathentry kind="src" path="src"/> 

含义:本工程的源码所在地路径--》在当前工程路径下的src文件下 

2、<classpathentry kind="lib" path="G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar"/> 

含义:本工程所要应用的外部jar包,具体路径是G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar这里利用的是绝对路径 

注意:我们不要应用绝对路径,这样的话我们load工程的时候就会出现找不到jar包的现象我们要用<classpathentry kind="lib" path="lib/cobra.jar"/> 

这种相对路径的格式,都用相对路径,那么当我们利用eclipse从文件load一个已经存在的工程的时候就不用在重新引入jar包了 

3、<classpathentry kind="output" path="bin"/> 

含义:本工程编译后的类文件存放到当前工程路径下的bin目录下 

 

 

 

由于最近对一个开源项目(jmeter)的源码进行了编译的工作,发现了很多小的问题,就在这里总结一下。对于.classpath文件的含义就可以参考上面的转贴。 

一般当下载好一个源码包后,我们就可以新建java工程,然后进行导入,接着把源码包中的eclipse.classpath中的内容复制到我们新建的java工程中的.classpath文件中。这时我们就可以编译项目了,一般在这里都会出现问题(如果引用到了外部的jar文件,这个可以在.classpath文件中查看),就是lib中的jar文件没有,或者名字跟.classpath文件中描述的不同。那么编译是就会提示***包不存在。此时我们就要手动的修改lib目录下jar文件的名字了,是它们与.classpath文件中一致即可。

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
  <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
  <classpathentry kind="output" path="src/main/webapp/WEB-INF/classes"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="lib" path="C:/Program Files/Java/jdk1.7.0_55/lib/jconsole.jar"/>
  <classpathentry kind="lib" path="C:/Program Files/Java/jdk1.7.0_55/lib/tools.jar"/>
  <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar"/>
  <classpathentry kind="var" path="M2_REPO/com/oracle/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.jar"/>
  <classpathentry kind="var" path="M2_REPO/opensymphony/sitemesh/2.4.2/sitemesh-2.4.2.jar"/>
  <classpathentry kind="var" path="M2_REPO/org/apache/xmlgraphics/fop/0.94/fop-0.94.jar"/>
  <classpathentry kind="var" path="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar"/>
  <classpathentry kind="var" path="M2_REPO/com/ckfinder/ckfinder/2.3/ckfinder-2.3.jar"/>
  ... ...
</classpath>

.classpath的位置定义了你这个项目在编译时所使用的$CLASSPATH

1.源文件的具体位置(kind="src")

2.运行的系统环境(kind="con")

3.工程的library的具体位置信息(kind="lib")

4.在每个lib的xml子节点中,有关于它的其它配置信息(例如我配置的那个"javadoc_location")

5.项目的输出目录(kind="output")

 

 

 

 

 

1、.classpath文件时eclipse新建web工程的时候生成的一个文件,改变java Build path的时候或者改变加载的jar包顺序的时候,这个文件也会改变。

2、.classpath文件不能随意删除。个人在将已有的工程import进入eclipse工作区的时候将.classpath文件删除了,然后再重新导入jar包,整个工程就会重新编译,也就会产生.classpath文件,但是这个重新生成的.classpath文件的内容可能就会出问题,也就有可能导致在tomcat部署的时候出现不可预料的问题。

例如:

   原始的.classpath文件部分主要内容如下:

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

 

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

 

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

   个人删除后,eclipse重新build的.classpath文件部分主要内容如下:

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

 

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_11"/>

 

<classpathentry kind="output" path="/bin"/> 

比较前后两个.classpath文件可以发现,重新build的.classpath文件里面的源文件地址为 <classpathentry kind="src" path=""/>,这样,在整个工程里面就会出现所有package错误,此时eclipse默认为package src.com.test, 而工程里面正确的包名应该是 package com.test   

 

说明下:<classpathentry kind="src" path="src"/> 表示工程源文件的地址;  

        <classpathentry kind="output" path="/bin"/>表示产生的class文件地址;  

 

另外,如果新生成的.classpath文件class文件地址为bin目录下的,即<classpathentry kind="output" path="/bin"/> ,tomcat部署工程的时候,默认去WebRoot/WEN-INF/classes这个目录查找class文件,而此时class文件去不存在于bin目录下面,故而tomcat下面没有class文件,在启动时也就会产生ClassNotFoundException错误!  

 

 

 

 

 

 

 

<classpathentry exported="true" kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>

每个新建java工程(Project)都默认存在的。

 

<classpathentry kind="src" ōutput="km230/apitest/classes" path="km230/apitest/src"/>

指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 

源文件路径path, output为这条路径中源文件编译以后class文件的输出路径。

 

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

指定源文件位置, 对应工程属性Java build path中Source项中的一项, kind="src" 指明为源文件, 

源文件路径path, 编译以后class文件的输出路径为默认输出路径。

 

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

指定编译以后class文件的默认输出路径, 对应工程属性Java build path中Source项中的default output path, 

kind="output"指明为默认class输出路径, path为相应输出路径。

注意: 这一条在文件中有且只能有一条(不可能同时出现两个默认吧?).

 

<classpathentry kind="lib" path="km230/lib/Notes.jar"/>

指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项, 

kind="lib"指明为库文件或目录, path为库文件或目录位置。

注意: 当指定库文件时(非库目录, 通常是jar包, 好像zip也可以, 不知道是否还有其它), 应当包含文件名。

 

<classpathentry kind="var" path="JUNIT_HOME/junit.jar" sourcepath="ECLIPSE_HOME/plugins/org.eclipse.jdt.source_3.0.0/src/org.junit_3.8.1/junitsrc.zip"/>

指定工程所用到的库文件或目录, 对应工程属性Java build path中Libraries项中的一项, 

kind="var"指明带有全局编译路径中设置的变量(Window->Prefrences->Java->Build Path->Classpath Variables), 

如上面的ECLIPSE_HOME, path为这个变量目录下的库文件(同样通常是jar包, 好像zip也可以, 也不知道是否还有其它)。

 

 

 

 

 

 

 

eclipse工程中.classpath文件含义: 

下面是一个.classpath文件内容: 

 

<?xml version="1.0" encoding="UTF-8"?> 
<classpath> 
        <!-- 源码目录 --> 
        <classpathentry kind="src" path="src"/> 
 
 
        <!-- 工程引用外部lib目录(最好用相对路径) -->         
        <classpathentry kind="lib" path="G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar"/> 
        <classpathentry kind="lib" path="lib/xstream-1.3.1.jar"/> 
        <classpathentry kind="lib" path="lib/xpp3_min-1.1.4c.jar"/> 
        <classpathentry kind="lib" path="lib/commons-logging.jar"/> 
        <classpathentry kind="lib" path="lib/htmlparser.jar"/> 
        
        <!-- JDK编译时容器,建立好java项目后自动产生的 --> 
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0_06"/> 
        <!-- class 目录,对于web工程的path就是WebRoot/WEB-INF/classes了 --> 
        <classpathentry kind="output" path="bin"/> 
</classpath> 

 

 

说明: 

1、<classpathentry kind="src" path="src"/> 

含义:本工程的源码所在地路径--》在当前工程路径下的src文件下 

2、<classpathentry kind="lib" path="G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar"/> 

含义:本工程所要应用的外部jar包,具体路径是G:/java_ocr/Asprise-OCR-Java-Windows_XP_32bit-4.0/aspriseOCR.jar这里利用的是绝对路径 

注意:我们不要应用绝对路径,这样的话我们load工程的时候就会出现找不到jar包的现象我们要用<classpathentry kind="lib" path="lib/cobra.jar"/> 

这种相对路径的格式,都用相对路径,那么当我们利用eclipse从文件load一个已经存在的工程的时候就不用在重新引入jar包了 

3、<classpathentry kind="output" path="bin"/> 

含义:本工程编译后的类文件存放到当前工程路径下的bin目录下 

 

 

 

由于最近对一个开源项目(jmeter)的源码进行了编译的工作,发现了很多小的问题,就在这里总结一下。对于.classpath文件的含义就可以参考上面的转贴。 

一般当下载好一个源码包后,我们就可以新建java工程,然后进行导入,接着把源码包中的eclipse.classpath中的内容复制到我们新建的java工程中的.classpath文件中。这时我们就可以编译项目了,一般在这里都会出现问题(如果引用到了外部的jar文件,这个可以在.classpath文件中查看),就是lib中的jar文件没有,或者名字跟.classpath文件中描述的不同。那么编译是就会提示***包不存在。此时我们就要手动的修改lib目录下jar文件的名字了,是它们与.classpath文件中一致即可。

 

 

 

 

 

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
  <classpathentry kind="src" path="src/test/java" output="target/test-classes" including="**/*.java"/>
  <classpathentry kind="src" path="src/main/java" including="**/*.java"/>
  <classpathentry kind="src" path="src/main/resources" excluding="**/*.java"/>
  <classpathentry kind="output" path="src/main/webapp/WEB-INF/classes"/>
  <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
  <classpathentry kind="lib" path="C:/Program Files/Java/jdk1.7.0_55/lib/jconsole.jar"/>
  <classpathentry kind="lib" path="C:/Program Files/Java/jdk1.7.0_55/lib/tools.jar"/>
  <classpathentry kind="var" path="M2_REPO/mysql/mysql-connector-java/5.1.30/mysql-connector-java-5.1.30.jar"/>
  <classpathentry kind="var" path="M2_REPO/com/oracle/ojdbc14/10.2.0.4.0/ojdbc14-10.2.0.4.0.jar"/>
  <classpathentry kind="var" path="M2_REPO/opensymphony/sitemesh/2.4.2/sitemesh-2.4.2.jar"/>
  <classpathentry kind="var" path="M2_REPO/org/apache/xmlgraphics/fop/0.94/fop-0.94.jar"/>
  <classpathentry kind="var" path="M2_REPO/xmlpull/xmlpull/1.1.3.1/xmlpull-1.1.3.1.jar"/>
  <classpathentry kind="var" path="M2_REPO/com/ckfinder/ckfinder/2.3/ckfinder-2.3.jar"/>
  ... ...
</classpath>

猜你喜欢

转载自yanguz123.iteye.com/blog/2211223
今日推荐