在此介绍三种获取项目绝对路径的方式
Path path = Paths.get("");
System.out.println("path1:"+path.toAbsolutePath().toString());
String path2 = request.getServletContext().getRealPath("");
System.out.println("path2:"+path2);
- ApplicationHome类,这是springboot的类
ApplicationHome ah = new ApplicationHome(getClass());
File file3 = ah.getSource();
System.out.println("path3:"+file3.getParentFile().toString());
使用idea启动springboot(没有打包)
- Path类:项目src所在的目录
- request类:tomcat所生成的项目目录
- ApplicationHome :项目生成jar的目录,看来springboot启动时模拟生成了jar包
打完jar包在windows上
- Path类:jar包所在的目录
- request类:tomcat所生成的项目目录
- ApplicationHome :jar包所在的目录
打完jar包在linux上
- Path类:临时的springboot的目录
- request类:tomcat所生成的项目目录
- ApplicationHome :jar包所在的目录
综上所述,如果想要在linux上获取jar包所在目录的绝对路径,那就需要用ApplicationHome 了。
|