问题1 resources文件夹下又创建了一个文件夹,但是在生成的时候,该文件夹未生成只在根目录生成了资源文件?
网上找了一大堆资料,没解决,最后试着改了改pom.xml文件,原来是在build节点上出的问题。
<build>
<resources>
<!--两个resource节点都加上吧,如果你两个目录下都有配置文件的话。只加一个resource节点,只会编译这个节点配置的目录下的xml,properties文件-->
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>识别resources下的properties文件
<include>**/*.txt</include>识别txt文件
<include>**/*</include>识别所有文件,包含文件夹(问题就在这里,原来没有加这一句,文件夹就不生成)
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.fxml</include>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
问题2 获取resources文件夹下的路径
1、Class.getResource()的获取资源路径
- 如果以 / 开头,则从根路径开始搜索资源。
- 如果不以 / 开头,则从当前类所在的路径开始搜索资源。
2、ClassLoader.getResource()的资源获取不能以 / 开头,统一从根路径开始搜索资源
1
|
String path = this .getClass().getClassLoader().getResource( "xxx" ).getPath(); |
通过这个代码获得。如果方法是在static中,则通过类名本身获得,因为this不能用在static方法中,会报错。
使用Class的getResourceAsStream
URL resourceUrl = ResourcePath.class.getResource("/test.txt");