Spring生成的jar包运行的话会读取同目录下的application.properties的文件。但是用idea直接跑项目会读取项目根目录的application.properties文件。

原本是通过ApplicationHome类的方法获取当前jar包的目录,对于idea运行的项目只能获取到target目录。

利用FileSystemResource类可以解决这个问题。

FileSystemResource application = new FileSystemResource("application.properties"); 当在idea中跑的话会指向项目根目录,jar包的话是同目录。 SpringBoot读取配置文件是用的这个类,所以用这个操作应该是没有问题。