如何从Java获取src / main / resources路径

时间:2013-09-10 12:27:43

标签: java resources classpath

我在src/main/resources路径下有一些东西。 具体来说,我有一个名为reports的报告模板文件夹。

据我所知,当部署/运行应用程序时,src/main/resources下的所有文件和文件夹都会转到类路径,即我的项目WEB-INF/classes

这意味着我的服务器中将创建一个文件夹WEB-INF/classes/reports

现在我想访问我的报告作为路径,而不是输入流,因为我在java中的报告代码支持文件路径而不是输入流。所以我必须能够得到WEB-INF/classes/reports绝对路径(或者相对,只要它是正确的我就不在乎。)

阅读有关类似问题的一些答案,我已经尝试过以下事项:

  1. getClass().getResource(".").getPath(); - >这将返回我当前在类路径中的类的确切路径,即:C:\Tools\JBoss Application Server 7.1.1\standalone\deployments\myProject.war\WEB-INF\classes\aaa\bbb\ccc\ddd

  2. getClass().getClassLoader().getResource(".").getPath(); - >这会返回:C:\Tools\JBoss Application Server 7.1.1\modules\sun\jdk\main\service-loader-resources,这完全不相关。

  3. 我想要回复C:\Tools\JBoss Application Server 7.1.1\standalone\deployments\myProject.war\WEB-INF\classes

    如果无法实现,我将获得第一条路径并根据需要返回多个文件夹以访问类文件夹。

    谢谢。

1 个答案:

答案 0 :(得分:1)

您需要ServletContext.getRealPath(String)方法。

getServletContext().getRealPath("/WEB-INF")