【发布时间】:2017-10-30 15:33:56
【问题描述】:
我有一个 Spring Boot 应用程序。包含此文件:
resources/metrics/telefonica/Metrics.xlsx
在代码中:
@Value(value = "classpath:/metrics/telefonica/Metrics.xlsx")
private Resource telefonicaMetricsTemplate;
..
Workbook wb =
WorkbookFactory.create
(telefonicaMetricsTemplate.getInputStream());
但是我收到了这个错误:
Caused by: java.io.FileNotFoundException: class path resource [metrics/telefonica/Metrics.xlsx] cannot be resolved to absolute file path because it does not reside in the file system: jar:file:/Users/lopes/Documents/workspace-sts-3.9.0.RELEASE/telefonicaUtils/target/telefonicaUtils-0.0.1-SNAPSHOT.jar!/BOOT-INF/classes!/metrics/telefonica/Metrics.xlsx
at org.springframework.util.ResourceUtils.getFile(ResourceUtils.java:217)
我也试过Resource telefonicaMetricsTemplate = new ClassPathResource("/metrics/telefonica/Metrics.xlsx");,结果相同
我正在运行该应用程序。从命令行如下:
java -jar target/telefonicaUtils-0.0.1-SNAPSHOT.jar
我正在运行应用程序。来自 Eclipse,它工作正常
【问题讨论】:
-
您是否尝试过使用 classpath*:/metrics/telefonica/Metrics.xlsx 来搜索类路径中的每个指标目录?
-
如果您指定
"classpath:/metrics/telefonica/Metrics.xlsx",我认为这会在您的文件系统上签入根目录。也许尝试删除第一个斜杠,因为通常您的 IDE 将资源文件夹视为.(至少 IntelliJ 是这样做的。)所以您可以尝试"classpath:metrics/telefonica/Metrics.xlsx"或"classpath:./metrics/telefonica/Metrics.xlsx"或"file:metrics/telefonica/Metrics.xlsx"或 @987654331 @
标签: java spring spring-mvc spring-boot file-io