注意:有时获取到的项目路径后再+“自定义路径后” 路径不可用,这时要看下项目里自定义路径是不是空文件夹,如果是空文件夹则调试和运行时文件夹不会编译到部署文件里.
1.方法一
调试时只能获取eclipse 项目未编译前的路径 不太好用
/* private static Logger logger = Logger.getLogger(BookController.class); */ @RequestMapping("/index") public String bookHandle(HttpServletRequest servlet) { JSONObject json = JsonResourceUtils.getJsonObjFromResource ("static/json/book_nav.json",servlet.getServletContext().getRealPath("/")); return "book"; }
2.方法 二
获取项目运行时的真实类路径
/* private static Logger logger = Logger.getLogger(BookController.class); */ @RequestMapping("/index") public String bookHandle(HttpServletRequest servlet) { JSONObject json = JsonResourceUtils.getJsonObjFromResource
/* 这里直接获取到了文件路径 */ (BookController.class.getClassLoader().getResource("static/json/book_nav.json").getPath()); return "book"; }
3.用spring 获取运行时类路径路径
String filePath = ClassUtils.getDefaultClassLoader().getResource("").getPath();
4.其它方法
package com.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.io.File;
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@RestController
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class,args);
}
@GetMapping("/lujing")
public void getLujing() throws Exception{
//当前项目下路径
File file = new File("");
String filePath = file.getCanonicalPath();
System.out.println(filePath);
//当前项目下xml文件夹
File file1 = new File("");
String filePath1 = file1.getCanonicalPath()+File.separator+"xml\";
System.out.println(filePath1);
//获取类加载的根路径
File file3 = new File(this.getClass().getResource("/").getPath());
System.out.println(file3);
//获取当前类的所在工程路径
File file4 = new File(this.getClass().getResource("").getPath());
System.out.println(file4);
//获取所有的类路径 包括jar包的路径
System.out.println(System.getProperty("java.class.path"));
}
}