eclipse项目中.classpath、.project和.setting详解

Window --> Show View --> Navigator ,然后打开这个视图,在这个视图下就能看到.settings下的这个文件了

1、简介

新建java项目时,自动生成的目录结构如下:

2、 .classpath详解  

总体上来说,.classpath文件用来描述project的运行环境。 

classpath是系统的环境变量,就是说JVM加载类的时候要按这个路径下去找,当然这个路径下可以有jar包,那么就是jar包里所有的class。 eclipse build path是eclipse工程里需要的包,也是需要的class,本质上没什么区别。 

你可以测试,比如JDK中有个String类,在java.lang中,那么你自己声明一个别的包,类叫String,然后打个jar包,将这个jar包所在的路径复制到classpath中,在系统的那个String前,这时候你在用String类将是用你自己的,

因为类加载器加载扫描路径是按顺序的,找到之前的jar里有String,后面的不在查看。 但是同一类名,还看你导入的包,其实你都可以自己创建一个java.lang包,然后创建一个String类,那就完全冒充JDK的啦。(可以用此方法对.class中文件复制出来打断点)

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

.classpath文件用于记录项目编译环境的所有信息,包括:源文件路径、编译后class文件存放路径、依赖的jar包路径、运行的容器信息、依赖的外部project等信息。如果把该文件删除,则eclipse不能讲该工程识别为一个正常的java工程,仅仅当做普通的文件夹而导致不能正常运行。详见:eclipse项目中.classpath文件详解


配置

①以”classpath”为根节点,每个“classpathentry”节点代表一个说明信息。

②每个“classpathentry”以“kind”属性指明类型,“path”指明路径。

③以上文件的所有内容,都是依赖项目中的“Java Build Path”内容改变而改变的,即对“Java Build Path”的所有操作都会反应到文件内容中(Project Explorer-选中java项目--右键Build Path -Confugure Build Path)。

具体配置

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

代表的是一个源文件,path=”src”是一个相对路径,相对.classpath文件本身,即path=”src”表示文件夹src与.classpath在同一个目录,且代表源文件。

对应于“Java Build Path”的“Source”tab页。

当指定属性combineaccessrules=”false”是则代表引入外部project,对应于“Java Build Path”的“Projects”tab页。其中path=”/pcommon”,是相对应workspace下的绝对路径。

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

output用于指定java源文件编译后的class文件存放路径。path:代表存放class文件路径,同样是相对.classpath文件的路径。假设修改输出文件路径,则相应内容也会改变(即修改下图中的test/bin) 

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

con即是container,就是程序运行的容器,或者就说是运行环境也OK,它实际上是在eclipse最初的时候要配置installed JREs中指定(一般情况下我们指定的是JDK),但是这里实际使用的是JDK下的JRE中的jar包,就是JDK_HOME/jre/lib就是对应的这条语句。对应于“Java Build Path”的“Libraries”tab页。

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

用于指定project依赖的Referenced Libraries,对应于“Java Build Path”的“Libraries”tab页。.classpath文件中各节点的顺序是通过tab-Order and Export 来控制的,不同的顺序可能会引起加载class文件问题,一般是源码放在最前面。  



3、 .project

总体上来说,.project文件用来描述project的基本信息。

用于描述工程,并引入一些外部的插件。

.project是项目文件,项目的结构都在其中定义,比如lib的位置,src的位置,classes的位置。如果你的项目中没有.project文件,那么eclipse就不能把它当作一个项目。-----------没有吧?

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

注意:每次修改.project文件后都在eclipse里refresh一下项目

详见:eclipse项目中的.project文件

 工程名: 

工程注释描述: 

具体加载方式信息:

 运行时需要的额外Eclipse插件:   

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

4、 .settings 文件

里面存放各种插件的配置文件。Eclipse中.setting目录下文件介绍     

org.eclipse.jdt.core.prefs文件指定了一些Java编译的特性,比如Java版本之类的,看文件每一行的key能猜出具体的用处。

如果项目中源文件版本不正确,编译出来的目标版本不对,那么可以在这里进行修改。界面中修改的话,可以参考:

org.eclipse.wst.common.component  文件规定了项目怎么组装成一个webapp。使用其数据来计算部署所需的依赖项


如果在界面中配置,在这里:

org.eclipse.wst.common.project.facet.core.xml指示了项目中启用那些facet及facet的版本。在实际使用中有时候在Eclipse的facet配置了以后又恢复回去了,总是配不成功,那么就可以直接修改这个文件。常见的比如servlet版本不匹配,那么就可以修改jst.web这个facet的version,如果java版本不对,那么可以修改java这个facet的version。

界面配置在下面的位置:

你可能感兴趣的:(eclipse项目中.classpath、.project和.setting详解)