SpringBoot打包成jar后,如何确保能正确读取resources目录下的文件?
- 内容介绍
- 文章标签
- 相关推荐
本文共计783个文字,预计阅读时间需要4分钟。
开发一个Word替换功能时,若需要替换其中的内容,需使用Word模板。将模板文件`word_replace_tpl.docx`放置于`resources`目录下,并在开发环境中通过以下方法读取:
javaInputStream inputStream=getClass().getClassLoader().getResourceAsStream(word_replace_tpl.docx);
然后,你可以使用这个输入流来处理Word文档。
开发一个word替换功能时,因替换其中的内容功能需要 word 模版,就把 word_replace_tpl.docx 模版文件放到 resources 下
在开发环境中通过下面方法能读取word_replace_tpl.docx文件,但是打成jar包在 linux下运行后无法找到文件了
File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "static/office_template/xxx.docx");
在开发环境运行时,会把资源文件编译到 项目\target\classes\static\office_template\xxx.docx 目录下,但是打包成jar后,
Resource下的文件是存在于jar这个文件里面,在磁盘上是没有真实路径存在的,它是位于jar内部的一个路径。所以通过ResourceUtils.getFile或者this.getClass().getResource("")方法无法正确获取文件。
本文共计783个文字,预计阅读时间需要4分钟。
开发一个Word替换功能时,若需要替换其中的内容,需使用Word模板。将模板文件`word_replace_tpl.docx`放置于`resources`目录下,并在开发环境中通过以下方法读取:
javaInputStream inputStream=getClass().getClassLoader().getResourceAsStream(word_replace_tpl.docx);
然后,你可以使用这个输入流来处理Word文档。
开发一个word替换功能时,因替换其中的内容功能需要 word 模版,就把 word_replace_tpl.docx 模版文件放到 resources 下
在开发环境中通过下面方法能读取word_replace_tpl.docx文件,但是打成jar包在 linux下运行后无法找到文件了
File file = ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + "static/office_template/xxx.docx");
在开发环境运行时,会把资源文件编译到 项目\target\classes\static\office_template\xxx.docx 目录下,但是打包成jar后,
Resource下的文件是存在于jar这个文件里面,在磁盘上是没有真实路径存在的,它是位于jar内部的一个路径。所以通过ResourceUtils.getFile或者this.getClass().getResource("")方法无法正确获取文件。

