1
我的Spring Boot项目中有几个SQL查询文件。这些查询位于路径Spring Boot:无法从资源加载文件
spring-boot-sql-in-files/src/main/resources/sql/query.sql
当我运行我的应用程序时,我执行加载这些查询到静态变量。
private static final String PATH_PREFIX = "src/main/resources/sql/";
public static String loadQueryFromFile(@NonNull String fileName) {
try {
return FileUtils.readFileToString(new File(PATH_PREFIX + fileName), Charset.defaultCharset());
} catch (Exception e) {
log.error("Error occurred during loading sql file to string, file=" + fileName, e);
throw new QueryNotLoadedException();
}
}
当我运行使用IDE,但是当我运行name.jar
文件,这是行不通的,它工作正常,我得到以下错误:
java.io.FileNotFoundException: File 'src/main/resources/sql/query.sql' does not exist
我怎样才能解决这个路径?
您是否验证过这些文件存在于jar文件中? – neuhaus
Ofcourse它不会运行......'src/main/resources'是你的类路径的根。这也将使'FileUtils.readFileToString'不起作用,因为它打包成jar时不是'File'。而是使用Spring资源抽象和utils将它加载到一个字符串中。 –
@neuhaus,我已经验证过,它的文件夹位于'/ BOOT-INF/classes/sql /' –