详解eclipse项目中.classpath文件的使用

 更新时间:2020年10月20日 09:38:47   作者:pengmm1990  
这篇文章主要介绍了详解eclipse项目中.classpath文件的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1 前言

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

2 作用

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

3 .classpath内容

.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.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7">
    <attributes>
      <attribute name="owner.project.facets" value="java"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/学习 8080">
    <attributes>
      <attribute name="owner.project.facets" value="jst.web"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
  <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
  <classpathentry kind="output" path="WebContent/WEB-INF/classes"/>
</classpath>

①以”classpath”为根节点,每个“classpathentry”节点代表一个说明信息。
②每个“classpathentry”以“kind”属性指明类型,“path”指明路径。
③以上文件的所有内容,都是依赖项目中的“Java Build Path”内容改变而改变的,即对“Java Build Path”的所有操作都会反应到文件内容中。

这里写图片描述 

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

3.1 kind="src"

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=”false”是则代表引入外部project,具体如下

<classpathentry combineaccessrules="false" kind="src" path="/mybatis"/>

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

这里写图片描述

3.2 kind="output"

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

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

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

这里写图片描述

假设修改输出文件路径,则相应内容也会改变
改为:spring-mybatis\WebContent\WEB-INF\newclasses

这里写图片描述 

则.classpath文件内容修改为:

<classpathentry kind="output" path="WebContent/WEB-INF/newclasses"/>

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

这里写图片描述

3.3 kind="con"

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

<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7">
    <attributes>
      <attribute name="owner.project.facets" value="java"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/学习 8080">
    <attributes>
      <attribute name="owner.project.facets" value="jst.web"/>
    </attributes>
  </classpathentry>
  <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
  <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>

对应操作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容器运行环境

复制代码 代码如下:
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/学习 8080"/>

3.3.3 Web App Libraries配置

<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>

3.3.4 User Library配置

<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>

3.4 kind="lib"

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

这里写图片描述 

则相应.classpath文件内容增加

<classpathentry kind="lib" path="WebContent/WEB-INF/lib/commons-dbcp-1.2.1.jar"/>

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

3.5 顺序

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

这里写图片描述

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

相关文章

  • Springboot启动扩展点超详细教程小结

    Springboot启动扩展点超详细教程小结

    这篇文章主要介绍了Springboot启动扩展点超详细教程小结,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-07-07
  • idea鼠标控制放大缩小的操作

    idea鼠标控制放大缩小的操作

    这篇文章主要介绍了idea鼠标控制放大缩小的操作教程,具有很好的参考价值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • java动态添加外部jar包到classpath的实例详解

    java动态添加外部jar包到classpath的实例详解

    这篇文章主要介绍了java动态添加外部jar包到classpath的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-09-09
  • SpringBoot实战:Spring如何找到对应转换器优雅使用枚举参数

    SpringBoot实战:Spring如何找到对应转换器优雅使用枚举参数

    这篇文章主要介绍了SpringBoot实战中Spring是如何找到对应转换器优雅的使用枚举参数,文中附有详细的实例代码有需要的朋友可以参考下,希望可以有所帮助
    2021-08-08
  • Spring Boot Security配置教程

    Spring Boot Security配置教程

    在本文里我们给大家分享了关于Spring Boot Security配置的相关步骤以及注意要点,需要的朋友们跟着操作下。
    2019-05-05
  • Spring AOP中三种增强方式的示例详解

    Spring AOP中三种增强方式的示例详解

    AOP (Aspect Orient Programming),直译过来就是 面向切面编程。AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。本文为大家介绍了Spring AOP中三种增强方式,感兴趣的可以了解一下
    2022-07-07
  • Java实现计算器设计

    Java实现计算器设计

    这篇文章主要为大家详细介绍了Java实现计算器设计,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java中Ajax与Axios的使用小结

    java中Ajax与Axios的使用小结

    在项目中我们经常会遇到需要向请求头中添加消息的场景,本文主要介绍了java中Ajax与Axios的使用小结,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • 最全JVM调优步骤和参数及配置

    最全JVM调优步骤和参数及配置

    这篇文章主要给大家介绍了关于JVM调优的相关资料,JVM调优是指对Java虚拟机(JVM)进行优化,以提高Java程序的性能和运行效率,文中介绍的非常详细,需要的朋友可以参考下
    2024-03-03
  • Spring Boot 把配置文件和日志文件放到jar外部

    Spring Boot 把配置文件和日志文件放到jar外部

    如果不想使用默认的application.properties,而想将属性文件放到jar包外面,怎么做呢?下面小编给大家带来了两种方法解决Spring Boot 把配置文件和日志文件放到jar外部问题,感兴趣的朋友一起看看吧
    2018-02-02

最新评论