java-在Jar中加载资源

下面是我的Jar文件的结构

root
 - template.ftl
 - org.project.myproject.App.java

在App.java中,我有一行代码希望我指定用于加载template.ftl的目录.就像是:

Line#1: cfg.setDirectoryForTemplateLoading("java.io.File object that represents /directory/for/storing/template/files");

和下一行代码,读取模板文件

Line#2: Template temp = cfg.getTemplate("template.ftl");

我的问题是我无法指定将从中加载文件的目录路径.可以在Jar的根目录中加载要加载的模板文件.我写的时候

cfg.setDirectoryForTemplateLoading(new File("."));

它说,找不到template.ftl.

可以在上面的第1行正确设置模板目录的适当代码是什么?

解决方法:

我认为这对您不起作用,因为您正在尝试加载一个不存在的文件,但它在jar中.要从jar文件中读取模板作为输入流,可以执行以下操作:

this.getClass().getClassLoader().getResourceAsStream("template.ftl");

我认为这应该有助于您走上正确的道路.

上一篇:Springboot2.x升级文档


下一篇:SpringBoot2.x整合轻量级分布式定时任务ShedLock3.x的使用详解