java.lang.class.getResource

静态块,在项目启动的时候就执行,是主动执行的

静态方法,  是被动执行的,需要被调用才执行。 

static{

         try {
            String path = Config.class.getResource("/").toURI().getPath();
            is = new FileInputStream(path + "config.properties");
            properties = new Properties();
            properties.load(is);
        } catch (Exception e) {
            logger.error("系统配置文件”config.properties“未找到。");
            e.printStackTrace();
        }
    }

    public static void main(String[] args) {
        System.out.println(TestClassResource.class.getResource(""));
        System.out.println(TestClassResource.class.getResource("/"));
        System.out.println(TestClassResource.class.getClassLoader().getResource(""));
    }

 file:/D:/WorkSpace/Tests/WebRoot/WEB-INF/classes/com/java/base/

file:/D:/WorkSpace/Tests/WebRoot/WEB-INF/classes/
file:/D:/WorkSpace/Tests/WebRoot/WEB-INF/classes/

Class.getResource("")    返回的是当前Class这个类所在包开始的为置

Class.getResource("/") 返回的是classpath的位置

getClassLoader().getResource("")  返回的是classpath的位置

getClassLoader().getResource("/")  错误的!! 

原文地址:https://www.cnblogs.com/brucetie/p/3950985.html