java项目测试或者不使用request,如何获取webroot路径

时间:2022-07-06 18:48:14
1.使用jdk中的方法,然后根据项目编译后的文件存在的位置,获取到classes目录,然后向上级查询获取
String path = EngineTest.class.getResource("/").toURI().getPath(); // /F:/eclipse2/workspace/项目/WebRoot/WEB-INF/classes/
String canonicalPath
= new File(path).getParentFile().getParentFile().getCanonicalPath(); // F:\eclipse2\workspace\项目\WebRoot
System.out.println(canonicalPath);
// F:\eclipse2\workspace\项目\WebRoot

WebRoot后边 \ 这个需要自己加
2.根据System类获取项目路径,然后在找WebRoot路径
Strng xiangmuPath = System.getProperty("user.dir"); // F:\eclipse2\workspace\项目
String webrootPath = xiangmuPath + "\WebRoot";

 

3.springboot又很多中,这里自己用到的一种,放到templates下的文件,可以通过这种方式获取
String path = ClassUtils.getDefaultClassLoader().getResource("templates/pdf/templateJfinal.html").getPath(); // /F:/eclipse2/workspace/demo/target/classes/templates/pdf/templateJfinal.html
4.也是springboot中的
String path2 = "/templates/pdf/templateJfinal.html";//最开始的 / 加不加都行 ClassPathResource classPathResource = new ClassPathResource(path2); try { System.out.println(classPathResource.getURL().getPath()); // /F:/eclipse2/workspace/demo/target/classes/templates/pdf/templateJfinal.html
} catch (IOException e) { e.printStackTrace(); }