一、获取resources下的文件路径
1、
this.getClass().getResource("/jdbc.properties");
2、
this.getClass().getClassLoader().getResource("jdbc.properties");
二、this.getClass().getResource(String)和this.getClass().getClassLoader().getResource(String)区别
代码:
System.out.println(this.getClass().getResource("/"));
System.out.println(this.getClass().getResource(""));
System.out.println(this.getClass().getResource("/jdbc.properties"));
System.out.println(this.getClass().getResource("jdbc.properties"));
System.out.println("*******************************");
System.out.println(this.getClass().getClassLoader().getResource("/"));
System.out.println(this.getClass().getClassLoader().getResource(""));
System.out.println(this.getClass().getClassLoader().getResource("/jdbc.properties"));
System.out.println(this.getClass().getClassLoader().getResource("jdbc.properties"));
结果:
file:/D:/WorkSpace4Java/chew-jdbc/target/classes/
file:/D:/WorkSpace4Java/chew-jdbc/target/classes/com/lhl/jdbc/pojo/
file:/D:/WorkSpace4Java/chew-jdbc/target/classes/jdbc.properties
null
*******************************
null
file:/D:/WorkSpace4Java/chew-jdbc/target/classes/
null
file:/D:/WorkSpace4Java/chew-jdbc/target/classes/jdbc.properties
总结:
this.getClass().getResource(String path):
用相对路径,最终生成路径为:当前类所在路径+path
用绝对路径,最终生成路径为:项目路径+path
this.getClass().getClassLoader().getResource(String path):
用绝对路径,返回null
用相对路径,且最终生成路径为:项目路径+path