无法解析为绝对文件路径,因为它不驻留在文件系统中

jon*_*oni 22 java jar file spring-boot

我的代码:

XWPFDocument doc = new XWPFDocument(OPCPackage.open(ResourceUtils.getFile("classpath:assets/OPTIONS_" + jubilar1.getJubiLanguage().toUpperCase() + ".docx")));
Run Code Online (Sandbox Code Playgroud)

我已经尝试过使用 .getFile()、extractJarFileFromURL 或 resource.getInputStream() 代替,但所有这些都不起作用。当我打包我的项目并将其作为 jar 文件运行时,它尝试打开以下文件,它总是返回以下消息。

错误:

java.io.FileNotFoundException:类路径资源 [assets/OPTIONS_DE. docx] 无法解析为绝对文件路径,因为它不驻留在文件系统中: jar:file:/home/tkf6y/IdeaProjects/hrapps/backend/target/backend-3.0.0.jar!/BOOT-INF/classes !/assets/OPTIONS_EN.docx

jon*_*oni 16

所以是的,这就是问题所在,因为您现在按照我的建议使用 InputStream 。问题是(并且一直是) getFile 的东西。我建议做的是不要使用你现在拥有的,而是做一个新的 ClassPathResource(your location).getInputStream()) ,它更容易,甚至使用 ResourceLoader (你可以注入的 Spring 接口),然后使用您再次使用 getInputStream() 的路径。\xe2\x80\x93

\n