Java Apache velocity无法找到资源

Java Apache velocity无法找到资源,java,apache,plugins,velocity,rcp,Java,Apache,Plugins,Velocity,Rcp,我试图加载一个模板的速度。我只有一个文件的路径。但我似乎无法用这个绝对路径加载文件。你需要怎么做 关于阅读绝对模板,文档非常模糊 我正在尝试在RCP程序的插件中使用它将模板放在插件项目的文件夹“templates/template1.vt”中,并确保将此文件夹添加到build.properties中。您可以尝试以下任一方法获取模板文件 one: URL url= Activator.getDefault().getBundle().getEntry("templates/template1.v

我试图加载一个模板的速度。我只有一个文件的路径。但我似乎无法用这个绝对路径加载文件。你需要怎么做

关于阅读绝对模板,文档非常模糊


我正在尝试在RCP程序的插件中使用它

将模板放在插件项目的文件夹“templates/template1.vt”中,并确保将此文件夹添加到build.properties中。您可以尝试以下任一方法获取模板文件

one:
 URL url= Activator.getDefault().getBundle().getEntry("templates/template1.vt");
 url = FileLocator.toFileURL(url);
 File file = new File(url.toURI());

second:
url = new URL("platform:/plugin/<plugin id>/templates/template1.vt");
url = FileLocator.toFileURL(url);
File file = new File(url.toURI());
1:
URL URL=Activator.getDefault().getBundle().getEntry(“templates/template1.vt”);
url=FileLocator.toFileURL(url);
File File=新文件(url.toURI());
第二:
url=新url(“平台:/plugin//templates/template1.vt”);
url=FileLocator.toFileURL(url);
File File=新文件(url.toURI());

我认为最好的选择是查看Velocity中的资源加载器概念。这是Velocity为从任意源加载模板提供的方式。有关详细信息,请参阅文档

您可以查看可用的,以参考他们是如何做到这一点的。如果配置正确,有一个可能完全满足您需要的功能


如果这不起作用,您可以从基类派生。然后,您的ResourceLoader将从您传递给getTemplate()调用的名称映射到实际文件。

它必须是我的插件之外的文件夹!我能做到这一点的唯一方法是在velocity中设置Fileloader属性。。。让速度通过这条路径进行初始化。。。但我在不同的位置有多个模板。。。这才是真正的问题:/n现在我必须用不同的属性反复初始化我的Velocity。如果您从ResourceLoader类派生,您还可以从不同的文件夹位置加载多个模板吗?当然,您可以按任何方式构建加载程序,它接收字符串并需要返回相应的InputStream。