问题描述:
在学习类加载的时候,遇到了路径问题导致的空指针。
用的是JDK1.8
测试代码如下:
@Test
public void test3() throws Exception {
String path = "src/main/java/com/cgy/study/testReflection/jdbc.properties";
/*ClassLoader loader = this.getClass().getClassLoader();
InputStream resourceAsStream = loader.getResourceAsStream(path);*/
InputStream resourceAsStream = new FileInputStream(path);
Properties p = new Properties();
p.load(resourceAsStream);
System.out.println(p.getProperty("username"));
System.out.println(p.getProperty("password"));
}
当用new FileInputStream(path);方式的时候,是可以获取到jdbc.properties配置文件内容的。但是当我换成loader.getResourceAsStream(path);方法的时候,就变成了空指针。
@Test
public void test3() throws Exception {
String path = "src/main/java/com/cgy/study/testReflection/jdbc.properties";
ClassLoader loader = this.getClass().getClassLoader();
InputStream resourceAsStream = loader.getResourceAsStream(path);
// InputStream resourceAsStream = new FileInputStream(path);
Properties p = new Properties();
p.load(resourceAsStream);
System.out.println(p.getProperty("username"));
System.out.println(p.getProperty("password"));
}
同样的路径,为啥不同的结果,求高手给个解释。
文件的绝对路径是:
F:\ideaWorkSpace\study\src\main\java\com\cgy\study\testReflection\jdbc.properties
java代码的绝对路径是:
F:\ideaWorkSpace\study\src\main\java\com\cgy\study\testReflection\TestReflection.java