在Spring boot项目源码环境下能正常获取resources目录下的文件,打成jar包运行后获取文件失败,提示找不到文件。
文件所在位置(要获取patch_1.1.sql这个文件):
以前的获取方式(在本地源码环境可以获取,打成jar包运行后获取失败):
URL url = this.getClass().getResource("/static/upgrade/bpm/patch_1.1.sql");
if (url != null) {
File file = new File(url.getPath());
// do something
}
获取文件失败的原因:在本地源码环境是以相对路径或绝对路径的方式获取文件,打成jar包后文件的路径变了,当然获取不到了。
现在的获取方式:
ClassPathResource classPathResource = new ClassPathResource("static/upgrade/bpm/patch_1.1.sql");
if (classPathResource.exists() && classPathResource.isFile()){
File file = classPathResource.getFile();
//do something
}