classpath就是类包的最顶层,对照下面这个图,应该理解的很清楚了:

在编译完项目后,会在target下生成classes,这个下面的路径就叫做类路径,对比上面的source 可以清楚的知道类路径具体指什么

classpath 和 classpath* 区别:

classpath:只会到你的class路径中查找找文件;
classpath*:不仅包含class路径,还包括jar文件中(class路径)进行查找.

-----------------------------------------------这篇写的不错----------------------------------------------------------------

https://segmentfault.com/a/1190000015802324?utm_source=tag-newest

在java项目中,你一定碰到过classpath,通常情况下,我们是用它来指定配置/资源文件的路径。在刚开始学习的时候,自己也糊里糊涂,但是现在,是时候弄清楚它到底是指什么了。

顾名思义,classpath就是class的path,也就是类文件(*.class的路径)。一谈到文件的路径,我们就很有必要了解一个java项目(通常也是web项目)它在真正运行时候,这个项目内部的目录、文件的结构;这样,我们才好分析、理解classpath。

开发时期的web项目结构

下面,我以一个ssm的项目为例,我先把开发时候的项目的目录结构图放出来。根据maven的约定,一般我们的项目结构就像下面这样。

classpath用在哪里了?

而我们经常用到classpath的地方,就是在指定一些配置/资源文件的时候会使用到。比如说,我们在web.xml中指定springmvc的配置文件,如下图,我们使用:classpath:entry/dev/spring-mvc.xml;再比如,当我们把*Mapper.xml文件放在了main/java/../mapping/文件夹下时,在mybatis的配置文件中配置其位置,我们使用:

classpath*:**/mapper/mapping/*Mapper.xml

很显然,上面这2个classpath的配置,是为了告诉配置文件,去哪里寻找我们要指定的配置文件。要想弄清楚为什么是上面这样写的,我们就要来看看项目运行时(或者是发布后)的目录结构了。

web项目发布后的目录结构

我们使用IDEA对项目进行打包,一种是war包,一种是explorer的文件夹,war包解压后就是explorer了。我们来对解压后的目录结构进行分析。

经过对比,我们要注意到,开发时期的项目里,src/main/下面的java和resources文件夹都被(编译)打包到了生产包的WEB-INF/classes/目录下;而原来WEB-INF下面的views和web.xml则仍然还是在WEB-INF下面。同时由maven引入的依赖都被放入到了WEB-INF/lib/下面。最后,编译后的class文件和资源文件都放在了classes目录下。

classpath原来是这个

在编译打包后的项目中,根目录是META-INF和WEB-INF 。这个时候,我们可以看到classes这个文件夹,它就是我们要找的classpath。

在第1个例子里,classpath:entry/dev/spring-mvc.xml 中,classpath就是指WEB-INF/classes/这个目录的路径。需要声明的一点是,使用classpath:这种前缀,就只能代表一个文件

在第2个例子里,classpath*:**/mapper/mapping/*Mapper.xml,使用classpath*:这种前缀,则可以代表多个匹配的文件;**/mapper/mapping/*Mapper.xml,双星号**表示在任意目录下,也就是说在WEB-INF/classes/下任意层的目录,只要符合后面的文件路径,都会被作为资源文件找到。

java classpath 理解相关推荐

  1. path、classpath理解

    path.classpath最常见的场景:环境变量配置 path环境变量:设置path的作用是让操作系统可以找到JDK命令(指定了JDK命令搜索路径):path环境变量原来Windows里面就有,只需 ...

  2. JAVA classpath jar问题[zz]

    classpath问题可以说是所有初学者头疼的问题,偶也一样. 1) classpath的作用:   它的作用就事让java找到你所要执行,或你拥有的类. 2) classpath的设置:   设置c ...

  3. 读Java核心技术36讲有感——谈谈对Java的理解,谈谈Exception和Error

    读过杨晓峰老师的36讲之后,想总结下自己的感想,写下来也有助于记忆,方便以后面试查阅和复习.题目所提到的话题本来是两讲,但是由于感想篇幅较短,所以合成一篇来写. 一.谈谈对Java平台的理解: 1.J ...

  4. 谈谈你对Java的理解

    谈谈你对Java的理解 这个考察的很宽泛,答案不是唯一的,往往考察多个方面,其实这个问题考察的是你是否真的掌握了Java,对基础知识点的理解是否真的很清楚.是否掌握主要的模块和运行 原理等,同时也会对 ...

  5. 一个同行对JAVA的理解

    想来学习Java也有两个年头了,永远不敢说多么精通,但也想谈谈自己的感受,写给软件学院的同仁们,帮助大家在技术的道路上少一点弯路.说得伟大一点是希望大家为软件学院争气,其实最主要的还是大家自身的进步提 ...

  6. linux tomcat设置classpath,理解Tomcat的Classpath-常见问题以及如何解决

    在很多Apache Tomcat用户论坛,一个问题经常被提出,那就是如何配置Tomcat的classpath,使得一个web应用程序能够找到类或者jar文件,从而可以正常工作.就像许多困扰Tomcat ...

  7. JAVA CLASSPATH 和PATH的区别 经典

    JAVA CLASSPATH 和PATH的区别 收藏 PATH: 用来指定 java 虚拟机(JVM) 所在在目录,也就是我们最常用的用来编译java源程序的javac.exe 和用来执行 *.cla ...

  8. java classpath 和 jar 简介

    目录 classpath jar包 小结 classpath 在Java中,我们经常听到classpath这个东西.网上有很多关于"如何设置classpath"的文章,但大部分设置 ...

  9. 从Java代码到Java堆理解和优化您的应用程序的内存使用

    从Java代码到Java堆理解和优化您的应用程序的内存使用 简介: 本文将为您提供 Java? 代码内存使用情况的深入见解,包括将 int 值置入一个Integer 对象的内存开销.对象委托的成本和不 ...

  10. java classpath import package 机制 @Java的ClassPath, Package和Jar

    java classpath import package 机制 從一個簡單的例子談談package與import機制 基本原則:為什麼需要將Java文件和類文件切實安置到其所歸屬之Package所對 ...

最新文章

  1. 支付宝支付 订单参数异常,请重新下单后再发起付款
  2. 使用nodejs代码在SAP C4C里创建Individual customer
  3. python3.0 数据类型、万恶的编码、文件操作
  4. 中关村windows11 32位专业版镜像v2021.07
  5. 跟我一起读postgresql源码(十六)——Executor(查询执行模块之——control节点(下))
  6. 音频编码:ADPCM
  7. 天津大学考研计算机专业课的教材,天津大学(专业学位)计算机技术研究生考试科目和考研参考书目...
  8. 架构系列二:使用Nginx+tomcat实现集群部署
  9. golang 模板 tpl 算术运算_高考数学常设的32个命题陷阱,七成同学中招失分!文末附数学疑难题(精品)模板!...
  10. python中如何打印阶梯_字符阶梯(python)
  11. 《Java从小白到大牛精简版》之第6章 运算符(上)
  12. 关于直播,所有的技术细节都在这里了(一)
  13. 微信小程序云开发-时间存储、转换、比较
  14. 为什么Laravel会成为最成功的PHP框架
  15. 【背包问题】基于粒子群算法求解0-1背包问题matlab代码
  16. 推荐几个好用的后台管理框架
  17. PageOffice 在线打开 word 文件并添加水印
  18. java 等于_java中的“等于”
  19. 如何在App Store用流量下载超过150M的软件?
  20. zcmu-1653,1654...【水题集合】

热门文章

  1. 运行出现Server Tomcat v8.5 Server at localhost failed to start.和A child container failed during start...
  2. [App Store Connect帮助]三、管理 App 和版本(2.2)输入 App 信息:设置 App 分级
  3. Beta阶段第1周/共2周 Scrum立会报告+燃尽图 03
  4. 【BZOJ1880】[Sdoi2009]Elaxia的路线(最短路)
  5. 50 years, 50 colors HDU - 1498(最小点覆盖或者说最小顶点匹配)
  6. Catharanthus roseus(长春花碱)的生物合成
  7. 在windows下把txt文件改为utf8格式
  8. 传统反病毒产品丧钟响起
  9. python的dict()字典数据类型的方法详解以及案例使用
  10. 百度编辑器ueditor获取不到内容?请把form放在table等其他元素最外面