一文搞懂什么是 classpath
文章目录
- 一、classpath
- 1、什么是 classpath
- 2、classpath 和 classpath* 区别
- 3、获取类路径
一、classpath
1、什么是 classpath
classpath 指的是类路径,也就是编译之后的 target
文件夹下的 WEB-INF/class
文件夹。
maven工程中,类路径指的是 src/main/java
,或者是 src/main/resource
下的路径就是类路径。
比如我们会在 spring 的项目中看到如下代码:
InputStream inputStream = new DefaultResourceLoader().getResource("classpath:/template/word.xml").getInputStream();
或者在配置文件中看到如下配置:
<property name="myConfiguration" value="classpath:mybatis/CalculateConfig.xml" />
这样配置完之后 spring 就能找到对应文件。
那么?classpath 指向的地方到底是哪里?
如上图所示,classpath 指向的就是打 war/jar
包之后的 classes
的位置。而 classes 文件夹下就是我们原项目的 java文件和resources文件夹
里面的内容。
所以上面的代码的意思就是在编译后的 classes 文件中找 template/word.xml (mybatis/CalculateConfig.xml)文件。
2、classpath 和 classpath* 区别
- classpath:只会到你的class路径中查找文件
- classpath*:不仅包含class路径,还包括
jar
文件中(class路径)进行查找
3、获取类路径
System.out.println(UserVos.class.getClassLoader().getResource(""));