【问题标题】:Query regarding reading the file from within jar关于从 jar 中读取文件的查询
【发布时间】:2021-01-22 08:04:43
【问题描述】:

我正在开发一个 Spring Boot 应用程序,该应用程序将被其他一些用户应用程序用作不可执行的 jar。 Spring Boot 应用程序(jar)读取资源文件夹中的 xsd 文件。当我们将它作为独立应用程序运行时,它运行良好。

从资源文件夹中读取 xsd 文件的代码 -

File xsdValue = new ClassPathResource("xsd/" + xsdFileName + ".xsd").getFile();

但问题是,当用户应用程序调用 jar 时,它会尝试在自己的资源文件夹中找到 xsd,而不是在 jar 的资源文件夹中。

请指教!!

非常感谢任何帮助。

【问题讨论】:

  • 将 Path 或 InputStream 与标准 java ClassLoader 一起使用。
  • 并使用唯一路径。 Xyz.class.getResource("xsd/xyz/" + ...);
  • 谢谢 Joop Eggen。您的解决方案使我朝着正确的方向前进,最终我找到了解决问题的方法。

标签: java jar classpath classloader


【解决方案1】:

jar-files中的资源不能作为File类获取,请改用ClassLoader类的getResourceAsStream方法。

【讨论】:

  • 正如建议的那样,我使用了 getResourceAsStream ,它的工作原理就像魅力一样..
  • 感谢 Alexander lvanov 提供了急需的见解和建议。
猜你喜欢
  • 1970-01-01
  • 2014-11-21
  • 2014-05-24
  • 2011-10-11
  • 1970-01-01
  • 2012-10-09
  • 2013-02-04
  • 2015-04-21
  • 1970-01-01
相关资源
最近更新 更多