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 /' –