Java(maven web app),获取资源文件夹中文件的完整文件路径?

Ric*_*ick 6 java spring struts classpath maven

我正在使用标准Maven目录结构设置的项目,因此我有一个名为"resources"的文件夹,在此我创建了一个名为"fonts"的文件夹,然后在其中放入一个文件.我需要将完整的String文件路径(位于我的项目结构中的文件resources/fonts/somefont.ttf)传递给我正在使用的对象,来自第三方库,如下所示,我已经搜索了一段时间但是已经对于这样做的正确方法感到有点困惑.我尝试过如下,但无法找到它.我看着使用ResourceBundle但似乎涉及制作一个实际的File对象,当我只需要传递给下面的方法的路径(没有在我面前的实际方法调用,所以只是从我的记忆中给出一个例子) :

FontFactory.somemethod("resources/fonts/somefont.ttf");
Run Code Online (Sandbox Code Playgroud)

我曾经想过有一种方法,使用标准Maven目录结构的项目从资源文件夹中获取文件,而不必使用类/包中的完整相对路径.对此有任何建议非常感谢.

我不想使用硬编码路径,因为在项目上工作的不同开发人员有不同的设置,我想将其作为项目的一部分包含在内,以便他们在签出项目源时直接获得它.

这是一个Web应用程序(Struts 1.3应用程序),当我查看爆炸的WAR文件(我通过Tomcat运行项目)时,该文件位于:

<Exploded war dir>/resources/fonts/somefont.ttf
Run Code Online (Sandbox Code Playgroud)

Bob*_*obG 11

码:

import java.io.File;
import org.springframework.core.io.*;

public String getFontFilePath(String classpathRelativePath) {
    Resource rsrc = new ClassPathResource(classpathRelativePath);
    return rsrc.getFile().getAbsolutePath();
}
Run Code Online (Sandbox Code Playgroud)

在您的情况下,classpathRelativePath将类似于"/resources/fonts/somefont.ttf".