Java读取Classpath文件
来源:互联网 发布:淘宝天猫店是如何申请 编辑:程序博客网 时间:2024/05/17 01:35
Classloader是从classpath中读取资源的一个类,一般我们用classloader来加载class,实际上,但凡是处在classpath中的文件,我们称之为资源,都可以用classloader来读取。
在java中的API里,有两种方式来使用classpath读取资源。
class里有一个getResource方法,classloader类里也有getResource方法,这两种API都可以从classpath中读取资源,但是也有一些区别。
class的getResource方法实际上也是用classloader来读取资源,但是起始路径不一样
这个API的起始路径是当前类的路径,如果要正确的读到资源,目标资源必须和当前class在同一级,或子目录里,可以用相对路径读取到。
加上/的读取方式,和调用classloader读取是同一个效果,这个读取代表的是某个classpath下的根路径。
这是一种错误的读取方式,使用classloader的时候,不可以指定/来读取。
例:
第一种读取,代表读取当前类同一级的文件name.properties
第二种和第三种读取等效,都是读取任意classpath根路径下的name.properties文件
Remark
在启动服务的时候,所有的依赖项都是以目录的形式存在在classpath下,这样classloader才能一个一个去加载,而getResource的API里的路径,也都是相对于每一个依赖的目录的路径。
在java中的API里,有两种方式来使用classpath读取资源。
- System.out.println(Bootstrap.class.getResource(""));
- System.out.println(Bootstrap.class.getResource("/"));
- System.out.println(Bootstrap.class.getClassLoader().getResource(""));
- System.out.println(Bootstrap.class.getClassLoader().getResource("/"));
- System.out.println(Bootstrap.class.getResource("name.properties"));
- System.out.println(Bootstrap.class.getResource("/name.properties"));
- System.out.println(Bootstrap.class.getClassLoader().getResource("name.properties"));
class里有一个getResource方法,classloader类里也有getResource方法,这两种API都可以从classpath中读取资源,但是也有一些区别。
class的getResource方法实际上也是用classloader来读取资源,但是起始路径不一样
- System.out.println(Bootstrap.class.getResource(""));
这个API的起始路径是当前类的路径,如果要正确的读到资源,目标资源必须和当前class在同一级,或子目录里,可以用相对路径读取到。
- System.out.println(Bootstrap.class.getResource("/"));
- System.out.println(Bootstrap.class.getClassLoader().getResource(""));
加上/的读取方式,和调用classloader读取是同一个效果,这个读取代表的是某个classpath下的根路径。
- System.out.println(Bootstrap.class.getClassLoader().getResource("/"));
这是一种错误的读取方式,使用classloader的时候,不可以指定/来读取。
例:
- System.out.println(Bootstrap.class.getResource("name.properties"));
- System.out.println(Bootstrap.class.getResource("/name.properties"));
- System.out.println(Bootstrap.class.getClassLoader().getResource("name.properties")
第一种读取,代表读取当前类同一级的文件name.properties
第二种和第三种读取等效,都是读取任意classpath根路径下的name.properties文件
Remark
在启动服务的时候,所有的依赖项都是以目录的形式存在在classpath下,这样classloader才能一个一个去加载,而getResource的API里的路径,也都是相对于每一个依赖的目录的路径。
0 0
- Java读取Classpath文件
- Java读取Classpath文件
- Java简单读取classpath下面的文件
- java读取classpath下的properties文件
- Java读取classpath下的文件
- Java读取classpath下的文件
- 读取classpath里的文件
- 读取classpath里的文件
- JAVA classpath文件说明
- java的.classpath文件
- web项目读取classpath下面文件
- Java代码获取classpath路径方法和资源文件的读取方法
- web项目读取classpath下面文件心得总结
- java打包配制文件之classpath
- .classpath文件
- Java读取classpath中配置文件的小例子
- java classpath
- java classpath
- Python新手容易犯的4个错
- Android开发:shape和selector和layer-list
- POJ 2828 Buy Tickets (线段树,插队问题)
- SQL语句全支持,spring-jdcb框架的实现和优化
- Hadoop学习笔记 --- 深入理解 parquet 列式存储格式
- Java读取Classpath文件
- Scrapy 爬取图片/gif/视频
- 网络芯片比较:DP83848、DM9000、enc28j60、RLD8019、w5100
- JAVA获取CLASSPATH路径
- Unity VR游戏开发干货教程:VR中的交互方式
- img 标签加载失败监听事件
- 跳槽前不想好这些,99%会被淘汰!
- 开门人和关门人_1013
- OpenCV access elements by dynamic address