在Jar中加载资源

时间:2011-03-23 17:06:48

标签: java freemarker

以下是我的Jar文件

的结构
root
 - template.ftl
 - org.project.myproject.App.java

在App.java中,我有一行代码,希望我指定加载directory的{​​{1}}。类似的东西:

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上方正确设置模板目录的apprpriate代码?

2 个答案:

答案 0 :(得分:3)

我认为这不适合你,因为你正在尝试加载一个不存在的文件,但是在你的jar中。要从jar文件中读取模板作为输入流,您可以这样做:

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

我认为这有助于您走上正确的轨道。

答案 1 :(得分:0)

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