[java] Class.getResource與ClassLoader.getResource的區別
阿新 • • 發佈:2018-11-09
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
}
}