1 前言

在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工程)下面都会有一个.classpath文件,那么这个文件究竟有什么作用?

2 作用

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

3 .classpath内容

.classpath文件其实也是一个xml格式的内容文件,其具体内容大致如下:

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

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

③以上文件的所有内容,都是依赖项目中的“Java Build Path”内容改变而改变的,即对“Java Build Path”的所有操作都会反应到文件内容中。

现在来具体分析文件内容的每个节点含义

3.1 kind="src"

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

kind=”src”的操作对应于“Java Build Path”的“Source”tab页

如下图,增加一个文件夹bin作为源文件,则.classpath文件增加内容

内容增加如下:

当然,做相应修改或删除,同样.classpath文件内容会相应改变。

另外,当指定属性combineaccessrules=”false”是则代表引入外部project,具体如下

对应页面tab,其中path=”/mybatis”,是相对应workspace下的

绝对路径。

3.2 kind="output"

output用于指定java源文件编译后的class文件存放路径,格式如下

path:代表存放class文件路径,同样是相对.classpath文件的路径,找到“WebContent/WEB-INF/classes”,可以看到class文件的存放

假设修改输出文件路径,则相应内容也会改变

改为:spring-mybatis\WebContent\WEB-INF\newclasses

则.classpath文件内容修改为:

实际存放class文件的路径也会改变

3.3 kind="con"

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

对应操作tab如下

3.3.1 JRE配置

path=”XXX”用于指定jre容器的使用情况,可选择jre的不同来源,不同来源path的实际值会有些变化

①选择”Workspace default JRE(jdk1.7)”,则值为

path="org.eclipse.jdt.launching.JRE_CONTAINER"

②选择“Alternate JRE”,则值为

path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7"

其中最后么的jdk1.7是我自定义的JRE名称

③选择”Execution environment”,即选择eclipse自带的内置jre,值为

path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"

其中最后么的JavaSE-1.7是系统内置的JRE名称

另外属性值name=”owner.project.facets”

path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"

应该是指定JRE容器的具体使用的模板,默认使用”java”,具体的没有探究。

3.3.2 Server Runtime配置

同理,其他容器配置同上,如对Server Runtime 容器的配置,下面配置了tomcat容器运行环境

3.3.3 Web App Libraries配置

3.3.4 User Library配置

3.4 kind="lib"

kind="lib"用于指定project依赖的Referenced Libraries,如图增加了一个jar包

则相应.classpath文件内容增加

其中path指定了依赖的jar的相对路径。

3.5 顺序

.classpath文件中各节点的顺序是通过tab-Order and Export 来控制的,不同的顺序可能会引起加载class文件问题,一般是源码放在最前面。

到此这篇关于详解eclipse项目中.classpath文件的使用的文章就介绍到这了,更多相关eclipse .classpath文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

java调用项目中的文件_详解eclipse项目中.classpath文件的使用相关推荐

  1. python导入模块中的对象_详解Python项目开发时自定义模块中对象的导入和使用

    背景:1)任何一个Python程序文件既可以直接执行,也可以作为模块导入再使用其中的对象:2)对于大型系统开发,一般不会把所有代码放到单个文件中,而是根据功能将其分类并分散多个模块中,在编写小型项目时 ...

  2. php mysql导出csv文件_详解PHP导入导出CSV文件

    我们先准备mysql数据表,假设项目中有一张记录学生信息的表student,并有id,name,sex,age分别记录学生的姓名.性别.年龄等信息. CREATE TABLE `student` ( ...

  3. 64位 int 占几个字节_面试常考,项目易错,长文详解C/C++中的字节对齐

    面试常考,项目易错,长文详解C/C++中的字节对齐​mp.weixin.qq.com 引入主题,看代码 我们先来看看以下程序 //编译器:https://tool.lu/coderunner/ //来 ...

  4. @entity 不限字节长度的类型_面试常考,项目易错,长文详解C/C++中的字节对齐...

    面试常考,项目易错,长文详解C/C++中的字节对齐​mp.weixin.qq.com 引入主题,看代码 我们先来看看以下程序 //编译器:https://tool.lu/coderunner/ //来 ...

  5. idea看java版本设置_详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用)...

    详解IntelliJ IDEA 中如何配置多个jdk版本即(1.7和1.8两个jdk都可用) 有时候需要看Java源码,但是 Java 1.7 和 Java 1.8的差别的关系,有时候你想查看不同jd ...

  6. java按钮权限控制_详解Spring Security 中的四种权限控制方式

    Spring Security 中对于权限控制默认已经提供了很多了,但是,一个优秀的框架必须具备良好的扩展性,恰好,Spring Security 的扩展性就非常棒,我们既可以使用 Spring Se ...

  7. jupyter notebook python3路径_详解修改Anaconda中的Jupyter Notebook默认工作路径的三种方式...

    方式1. 打开Windows的cmd,在cmd中输入jupyter notebook --generate-config如下图: 可以看到路径为D:\Users--找到此路径修改jupyter_not ...

  8. js模板字符串自定义类名_详解JavaScript ES6中的模板字符串

    这篇文章主要介绍了详解JavaScript ES6中的模板字符串,JS的ES6版本带来诸多简洁化方面的重大改进,需要的朋友可以参考下 在 ES6 中引入了一种新的字符串字面量 - 模板字符串,除了使用 ...

  9. java字体推荐_详解Eclipse 字体、字号的设置、最佳字体推荐

    Eclipse 最佳字体 推荐: 步骤:Eclipse->Windows[窗口]->Preferences[首选项]->General[常规]->Appearance[外观]- ...

最新文章

  1. VOICE VOER IP(VoIP)理论(NP水平学的)
  2. python界面设置-Python进入后台界面(admin)设定
  3. php微信分享时好时坏,手机端微信分享前几天都是正常的今天发现分享出去就不正常了设置,迅睿CMS,CodeIgniter技术文档,PHP开发文档,迅睿CMS框架官方教程...
  4. android简单小程序完整代码_10行代码实现小程序支付功能!丨实战
  5. php识别名片,用户信息名片怎么利用PHP实现自动生成
  6. radio和文字无法对齐
  7. ln创建、删除软/硬链接
  8. JNDI技术、JDBC框架、几种元数据介绍
  9. 2019-11-18周一上午,学习《图解深度学习》第一章总结
  10. 最新版全自动脚本交友聊天平台挂机
  11. layui数据表格增加自动换行后,拖动列宽固定列错乱变形
  12. vue 登陆成功后携带不了后台传来的 set-cookie 并携带请求错误处理
  13. 关于JAVA开发小游戏如何做读档和存档功能的这件事
  14. 2022天梯赛 L1-086 斯德哥尔摩火车上的题
  15. python画八卦_python编程也能八卦?
  16. java实现mysql自动更新创建时间与更新时间的两种方式
  17. 新概念1 课文和单词(2022/12/24)
  18. 图论学习--6 平面图(思维导图)平面概念 对偶图 平面图嵌入算法
  19. 给csdn童鞋们的一封信 (csdn为什么不能粘贴图片写博客?)
  20. 计算机系统声音出不来怎么办,电脑没声音了如何恢复_电脑突然没声音的解决教程...

热门文章

  1. python使用matplotlib可视化、使用英文单次或者缩写指定使用的颜色、使用16进制的RGB字符串指定颜色、使用RGB或者RGBA数字元组指定颜色
  2. R语言生存分析(survival analysis)与生存资料有关的概念详解
  3. R语言ggplot2可视化:自定义函数在箱图(boxplot)上添加分组样本个数(count)、分组均值(mean)、箱体填充色自定义、数据标签色彩自定义
  4. Python使用sklearn构建lasso回归模型并指定样本权重:即构建带样本权重(sample_weight)的回归模型
  5. python使用正则表达式验证邮箱地址语法有效性
  6. ggplot2包绘基因差异表达点图
  7. 多因子降维法(MDR,Multifactor Dimensionality Reduction )
  8. 第三代基因测序技术革新 云计算的应用
  9. mysql load data on duplicate_带有ON DUPLICATE KEY UPDATE的MySQL LOAD DATA INFILE
  10. linux mysql远程连接其他服务器_Linux服务器中MySQL远程连接的开启方法