[java] Class.getResource与ClassLoader.getResource的区别

Class.getResource(String path)

path不以"/“开头时,默认是从此类所在的包下取资源;
path 以”/"开头时,则是从ClasPath根下获取资源;

public class ResourceTest {

    @Test
    public void testClassGetResource() {
        Class<ResourceTest> clz = ResourceTest.class;
        URL resource = clz.getResource(""); //file:/Users/jianglei/yunhe/spring-example/mybatis-01/target/test-classes/com/resource/
        resource = clz.getResource("/");    //file:/Users/jianglei/yunhe/spring-example/mybatis-01/target/test-classes/
    }
}

ClassLoader.getResource(String path)

path不能以"/"开头;
path是从ClassPath根下获取

public class ResourceTest {

    @Test
    public void testClassLoaderGetResource() {
        ClassLoader classLoader = ResourceTest.class.getClassLoader();
        URL resource = classLoader.getResource("");  //  file:/Users/jianglei/yunhe/spring-example/mybatis-01/target/test-classes/
        URL resource1 = classLoader.getResource("/"); // null
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_36210698/article/details/83104589