您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用可执行Jar时找不到Spring-Boot资源

使用可执行Jar时找不到Spring-Boot资源

好的,我已经找到了真正的问题和解决方案。

首先,应用程序使用了正确的csv文件路径,但是在使用可执行jar时,还有另一个问题。

在我开始讨论可执行jar之前,我使用以下解决方案来获取CSV文件(问题是getFile()):

final List<String> resourceLines = FileReadUtils.readLines(specialisationResource.getFile());
for (final String line : resourceLines) {
  data.add(getNewTransientSpecialisation(line));
}

但是在可执行的jar中,我无法将资源用作文件,我需要将其用作流,请参见上面提供的链接。所以我需要更改代码。如果您更喜欢使用本机Java,则可以执行以下操作:

final InputStream inputStream = specialisationResource.getInputStream();
final BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

String line;
while ((line = bufferedReader.readLine()) != null) {
    data.add(getNewTransientSpecialisation(line));
}

我更喜欢使用框架并使用如下所示的apache commons:

final List<String> resourceLines = IoUtils.readLines(specialisationResource.getInputStream());
for (final String line : resourceLines) {
    data.add(getNewTransientSpecialisation(line));
}

因此,请记住,不要使用File()获取资源,请始终使用流来避免从一开始就出现该问题:-)

希望能对某人有所帮助。

Java 2022/1/1 18:14:13 有446人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶