Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java class.getResource返回错误的文件路径_Java_Eclipse_Maven 2 - Fatal编程技术网

Java class.getResource返回错误的文件路径

Java class.getResource返回错误的文件路径,java,eclipse,maven-2,Java,Eclipse,Maven 2,我想用Velocity来为我的电子邮件制作模板,但我很难给出模板的正确路径:“template.vm”,它位于maven创建的资源文件夹中 我使用了:class.getResource(“template.vm”).getPath=>但是getResource retruns null是logique,因为我知道template.vm在这种情况下应该在类的同一个包中,我的template.vm在WEB-INF/classes上 所以我使用了:class.getResource(“/templat

我想用Velocity来为我的电子邮件制作模板,但我很难给出模板的正确路径:“template.vm”,它位于maven创建的资源文件夹中

我使用了:class.getResource(“template.vm”).getPath=>但是getResource retruns null是logique,因为我知道template.vm在这种情况下应该在类的同一个包中,我的template.vm在WEB-INF/classes上

所以我使用了:class.getResource(“/template.vm”).getPath,但它返回了一个错误的路径,在我的例子中,template.vm的路径是:D:/folderOne/FolderTwo/WEB-INF/classes/template.vm和getResource retruns:/D:/folderOne/FolderTwo/WEB-INF/classes/template.vm velocity类抛出的原因是:无法找到具有给定路径的资源:/D:/folderOne/FolderTwo/WEB-INF/classes/template.vm


我现在正在为这个小问题挣扎不止一天,请帮助我

你的速度应该使用而不是。如果使用它,只需调用
VelocityEngine.getTemplate(“template.vm”)

为什么需要该路径?你不能只使用inputstream吗?我需要给它的路径velocity methode来加载模板,我使用velocity如下:template t=VelocityEngine.getTemplate(字符串名称),当name是模板的名称:template时。vm@BadrDRAIFI它的发生是因为你试图从上下文中获得路径,试试这个@AkashYadav,我试过了,但始终相同的问题ResourceNotFoundException我发现的是wierd,这就是为什么velocity Execution抛出:ResourceNotFoundException:当模板路径前缀为/时无法找到资源,我认为这就是导致整个问题的原因,因为路径正好如我所说的:D:/FolderOne/FolderTwo/WEB-INF/classes/template.vm,但是当前缀为/it变为:/D:/FolderOne/FolderTwo/WEB-INF/classes/template.vm时,使模板无法获得并抛出异常是因为返回
URL
。没有达到你的期望。它不返回文件路径。它返回URL的路径部分。您的URL是
file:///D:/FolderOne/FolderTwo/WEB-INF/classes/template.vm
,URL的路径部分是
/D:/FolderOne/FolderTwo/WEB-INF/classes/template.vm
。谢谢@losa的帮助!