静态块,在项目启动的时候就执行,是主动执行的。
静态方法, 是被动执行的,需要被调用才执行。
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("/") 错误的!!