首先介绍一下java中获取项目路径的常规方法:(根据个人需要看是否添加:.substring(1)去掉第一个字符"/")
(1):this.getClass().getResource("xxx.xml").getPath();
(2):file.getCanonicalPath();
(3):this.getClass().getClassLoader();
(4):System.getProperty("user.dir");
(5):System.getProperty("java.class.path");
(6):Thread.currentThread().getContentClassLoader();
(7):request.getSession().getServletContext();
但是在static方法中不能使用this,如果使用:
类名.class.getClass().getResource("/").getPath().substring(1);
这种方法,运行编译时会报空指针异常,因此可以在static方法中使用如下方法获取路径:
public static void test() throws Exception {
String xmlfilePath =new Object() {
public String getPath() {
return this.getClass().getResource("haarcascade_frontalface_alt.xml").getPath();
}
}.getPath().substring(1);
}
网友评论