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。
界面配置在下面的位置: