我的编程空间,编程开发者的网络收藏夹
学习永远不晚

详解eclipse项目中的.classpath文件原理

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

详解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="class="lazy" data-src" path="class="lazy" data-src"/>
    <classpathentry kind="class="lazy" data-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="class="lazy" data-src"

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


<classpathentry kind="class="lazy" data-src" path="class="lazy" data-src"/>
<classpathentry kind="class="lazy" data-src" path="resource"/>

kind=”class="lazy" data-src”的操作对应于“Java Build Path”的“Source”tab页

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

内容增加如下:


<classpathentry kind="class="lazy" data-src" path="class="lazy" data-src"/>
<classpathentry kind="class="lazy" data-src" path="bin"/>
<classpathentry kind="class="lazy" data-src" path="resource"/>

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

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


<classpathentry combineaccessrules="false" kind="class="lazy" data-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”


<attribute name="owner.project.facets" value="java"/>

应该是指定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.jdt.USER_LIBRARY/tomcat7"/>

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文件原理的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

详解eclipse项目中的.classpath文件原理

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

eclipse项目中的.classpath文件有什么用

这篇文章主要介绍eclipse项目中的.classpath文件有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1 前言在使用eclipse或者myeclipse进行java项目开发的时候,每个project(工
2023-06-22

项目中常用的.env文件原理源码解析

这篇文章主要为大家介绍了项目中常用的.env文件原理源码解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
2022-12-25

如何在C#项目中链接一个文件夹下的所有文件详解

很多时候我们需要获取一个结构未知的文件夹下所有的文件或是指定类型的所有文件,下面这篇文章主要给大家介绍了关于如何在C#项目中链接一个文件夹下的所有文件,需要的朋友可以参考下
2023-02-09

Java实现读取项目中文件(.json或.properties)的方法详解

这篇文章主要为大家详细介绍了Java实现读取项目中文件的方法,例如.json或.properties,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
2023-05-14

详解Python中的上下文管理器原理

这篇文章主要为大家详细介绍了Python中的上下文管理器的原理与使用,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
2023-03-11

解决Eclipse创建android项目无法正常预览布局文件问题的方法

一、问题描述今天使用SDK Manager将Android SDK的版本更新到了Android 5.1的版本,eclipse创建android项目时,预览activity_main.xml文件时提示:This version of the
2022-06-06

ssm框架下web项目,web.xml配置文件的作用(详解)

1. web.xml中配置了CharacterEncodingFilter,配置这个是拦截所有的资源并设置好编号格式。encoding设置成utf-8就相当于request.setCharacterEncoding("UTF-8");for
2023-05-30

一文详解Springboot中filter的原理与注册

这篇文章主要为大家详细介绍了Springboot中filter的原理与注册的相关知识,文中的示例代码讲解详细,对我们掌握SpringBoot有一定的帮助,需要的可以参考一下
2023-02-27

解决在eclipse中将android项目生成apk并且给apk签名的实现方法详解

生成apk最懒惰的方法是:只要你运行过android项目,到工作目录的bin文件夹下就能找到与项目同名的apk文件,这种apk默认是已经使用debug用户签名的。如果想要自己给apk签名:1.签名的意义为了保证每个应用程序开发商合法ID,防
2022-06-06

Android项目中解析XML文件的方法有哪些

今天就跟大家聊聊有关Android项目中解析XML文件的方法有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。1.xml文件代码
2023-05-31

Linux文件系统之重定向的实现原理详解

本文详细讲解了Linux文件系统中的重定向实现原理。重定向通过识别重定向符,重定向文件描述符,系统调用和进程执行来实现。重定向输入将标准输入文件描述符复制到指定文件。重定向输出将标准输出文件描述符复制到指定文件。错误输出和管道也是重定向形式。
Linux文件系统之重定向的实现原理详解
2024-04-02

详解使用Python处理文件目录的相关方法

所有文件都包含在各个不同的目录下,不过Python也能轻松处理。os模块有许多方法能帮你创建,删除和更改目录。 mkdir()方法 可以使用os模块的mkdir()方法在当前目录下创建新的目录们。你需要提供一个包含了要创建的目录名称的参数。
2022-06-04

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录