获取类路径下的资源

对于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());
    }
}

 结果:

身体是革命的本钱,爱跑步,爱生活!
原文地址:https://www.cnblogs.com/caozx/p/9399901.html