首页  >  文章  >  Java  >  为什么作为 Jar 文件运行时找不到类路径资源?

为什么作为 Jar 文件运行时找不到类路径资源?

Linda Hamilton
Linda Hamilton原创
2024-11-04 12:52:29307浏览

Why does Classpath Resource Not Found when Running as Jar File?

作为 Jar 文件运行时未找到类路径资源

使用 @Value 注释加载类路径资源时,考虑文件的地点。如果资源嵌入在 JAR 文件中,则使用 resource.getFile() 检索其内容可能会导致异常,因为 getFile() 期望资源在文件系统上可用。

检索资源的JAR 文件中的内容,请改用 resource.getInputStream()。这使您可以读取资源的内容,无论其位置如何。

以下是如何修改应用程序以使用 getInputStream() 的示例:

<code class="java">private void testResource(Resource resource) {
  try {
    InputStream inputStream = resource.getInputStream();
    printFileContents(inputStream);
  } catch (IOException ex) {
    logger.error(ex.toString());
  }
}

private void printFileContents(InputStream inputStream) {
  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
  bufferedReader.lines().forEach(logger::debug);
}</code>

以上是为什么作为 Jar 文件运行时找不到类路径资源?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn