【发布时间】: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