获取类路径下的资源

Posted caozx

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取类路径下的资源相关的知识,希望对你有一定的参考价值。

对于JavaWeb而言,获取类路径下的资源,就是获取classes目录下的资源。

获取资源的方式有两种,利用Class或ClassLoader。

Class类的getResourceAsStream(String path):

  • 路径以“/”开头,相对classes路径;
  • 路径不以“/”开头,相对当前class文件所有路径;

ClassLoader类的getResourceAsStream(String path):

  • 相对classes路径;

下面是我的目录结构:

技术分享图片

代码:

package com.inspur.test;

public class Test {

    public static void main(String[] args) {
        ClassLoader cl = Test.class.getClassLoader();
        //相对classes的路径
        System.out.println(cl.getResource("1.properties").getPath());
        System.out.println(cl.getResource("com/inspur/test/2.properties").getPath());
        
        Class<?> c = Test.class;
        //不以‘/‘开头,相对当前文件所在的路径,即Test.java所在的路径,/com/inspur/test/
        System.out.println(c.getResource("2.properties").getPath());
        //以‘/‘开头,相对classes的路径
        System.out.println(c.getResource("/com/inspur/test/2.properties").getPath());
    }
}

 结果:

技术分享图片

 

以上是关于获取类路径下的资源的主要内容,如果未能解决你的问题,请参考以下文章

spring boot 打jar包,获取resource路径下的文件

Spring根据包名获取包路径下的所有类

如何禁用在android片段类中按下的后退按钮

8 -- 深入使用Spring -- 3...1 Resource实现类ClassPathResource

如何获取项目src目录下的资源文件

如何以编程方式获取资源目录路径