1. 程式人生 > >[java] Class.getResource與ClassLoader.getResource的區別

[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 } }