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