在使用eclip或者myeclip进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用?
.classpath文件用于记录项目编译环境的所有信息,包括:源文件路径、编译后class文件存放路径、依赖的jar包路径、运行的容器信息、依赖的外部project等信息。如果把该文件删除,则eclip不能讲该工程识别为一个正常的java工程,仅仅当做普通的文件夹而导致不能正常运行。
.classpath文件其实也是一个xml格式的内容文件,其具体内容大致如下:
<?xml version="1.0" encoding="utf-8"?><classpath> <classpathentry kind="src" path="src"/> <classpathentry kind="src" path="resource"/> <classpathentry kind="con" path="org.eclip.jdt.launching.jre_container/org.eclip.jdt.internal.debug.ui.launcher.standardvmtype/jdk1.7"> <attributes> <attribute name="owner.project.facets" value="java"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclip.jst.rver.core.container/org.eclip.jst.rver.tomcat.runtimetarget/学习 8080"> <attributes> <attribute name="owner.project.facets" value="jst.web"/怎么发纯文字朋友圈> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclip.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclip.jst.j2ee.internal.module.container"/> <classpathentry kind="output" path="webcontent/web-inf/class"/></classpath>①以”classpath”为根节点,每个“classpathentry”节点代表一个说明信息。②每个“classpathentry”以“kind”属性指明类型,“path”指明路径。③以上文件的所有内容,都是依赖项目中的“java build path”内容改变而改变的,即对“java build path”的所有操作都会反应到文件内容中。
现在来具体分析文件内容的每个节点含义
src:即source 源文件,代表的是一个源文件,path=”src”是一个相对路径,相对.classpath文件本身,即path=”src”表示文件夹src与.classpath在同一个目录,且代表源文件。
<classpathentry kind="src" path="src"/><classpathentry kind="src" path="resource"/>
kind=”src”的操作对应于“java build path”的“source”tab页
如下图,增加一个文件夹bin作为源文件,则.classpath文件增加内容
内容增加如下:
<classpathentry kind="src" 爸爸去哪儿第四季path="src"/><classpathentry kind="src" path="bin"/><classpathentry kind="src" path="resource"/>
当然,做相应修改或删除,同样.classpath文件内容会相应改变。
另外,当指定属性combineaccessrules=”fal”是则代表引入外部project,具体如下
<classpathentry combineaccessrules="fal" kind="src" path="/mybatis"/>
对应页面tab,其中path=”/mybatis”,是相对应workspace下的
绝对路径。
output用于指定java源文件编译后的class文件存放路径,格式如下
<classpathentry kind="output" path="webcontent/web-inf/class"/>
path:代表存放class文件路径,同样是相对.classpath文件的路径,找到“webcontent/web-inf/class”,可以看到class文件的存放
假设修改输出文件路径,则相应内容也会改变
改为:spring-mybatis\webcontent\web-inf\newclass
则.classpath文件内容修改为:
<classpathentry kind="output" path="webcontent/web-inf/newclass"/>
实际存放class文件的路径也会改变
con即是container,就是程序运行的容器,或者就说是运行环境也ok,它实际上是在myeclip最初的时候要配置installed jres中指定(一般情况下我们指定的是jdk),但是这里实际使用的是jdk下的jre中的jar包,就是jdk_home/jre/lib就是对应的这条语句。具体内容如下
<classpathentry kind="con" path="org.eclip.jdt.launching.jre_container/org.eclip.jdt.internal.debug.ui.launcher.standardvmtype/jdk1.7"> <attributes> <attribute name西塞山前="owner.project.facets" value="java"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclip.jst.rver.core.container/org.eclip.jst.rver.tomcat.runtimetarget/学习 8080"> <attributes> <attribute name="owner.project.facets" value="jst.web"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclip.jst.j2ee.internal.web.container"/> <classpathentry kind="con" path="org.eclip.jst.j2ee.internal.module.container"/>
对应操作tab如下
path=”xxx”用于指定jre容器的使用情况,可选择jre的不同来源,不同来源path的实际值会有些变化
①选择”workspace default jre(jdk1.7)”,则值为
path="org.eclip.jdt.launching.jre_container"
②选择“alternate jre”,则值为
path="org.eclip.jdt.launching.jre_container/org.eclip.jdt.internal.debug.ui.launcher.standardvmtype/jdk1.7"
其中最后么的jdk1.7是我自定义的jre名称
③选择”execution environment”,即选择eclip自带的内置jre,值为
path="org.eclip.jdt.launching.jre_container/org.eclip.jdt.internal.debug.ui.launcher.standardvmtype/java-1.7"
其中最后么的java-1.7是系统内置的jre名称
另外属性值name=”owner.project.facets”
<attribute name="owner.project.facets" value="java"/>
应该是指定jre容器的具体使用的模板,默认使用”java”,具体的没有探究。
同理,其他容器配置同上,如对rver runtime 容器的配置,下面配置了tomcat容器运行环境
<classpathentry kind="con" path="org.eclip.jst.rver.core.co讨厌ntainer/org.eclip.jst.rver.tomcat.runtimetarget/学习 8080"/>
<classpathentry kind="con" path="org.eclip.jst.j太坦白2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclip.jdt.ur_library/tomcat7"/>
kind=”lib”用于指定project依赖的referenced libraries,如图增加了一个jar包
则相应.classpath文件内容增加
<classpathentry kind="lib" path="webcontent/web-inf/lib/commons-dbcp-1.2.1.jar"/>
其中path指定了依赖的jar的相对路径。
.classpath文件中各节点的顺序是通过tab-order and export 来控制的,不同的顺序可能会引起加载class文件问题,一般是源码放在最前面。
到此这篇关于详解eclip项目中的.classpath文件原理的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持www.887551.com。
本文发布于:2023-04-04 09:08:08,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/44ac3838d0183eea45461aa44694269d.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:详解eclipse项目中的.classpath文件原理.doc
本文 PDF 下载地址:详解eclipse项目中的.classpath文件原理.pdf
留言与评论(共有 0 条评论) |