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

标签 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 应用服务器 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,这是完全不相关的。

我想要一些东西返回 C:\Tools\JBoss Application Server 7.1.1\standalone\deployments\myProject.war\WEB-INF\classes

如果不可能,我将获取第一个路径并根据需要返回尽可能多的文件夹以到达 classes 文件夹。

谢谢。

最佳答案

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

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

关于java - 如何从 Java 获取 src/main/resources 路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18718971/

相关文章:

Java if语句有2个条件和通用代码

java - Spring Boot 1.4.3 和 @ControllerAdvice

jar - 将外部 jar 添加到 Eclipse 插件类路径

java - 胖 JAR 的 gradle 替代品是什么?

java - 如何使用 JSON 在 Spring Rest 中接收和发送日期?

java - Java 中的 addPropertyChangeListener 方法

vb.net - iTextSharp - 如何从项目资源输入图像(PNG)?

javascript - 如何在 Grails Resources Plugin 中指定通配符资源模式?

C++ 使用模板成员函数继承类

java - Hudson 不使用 Maven 生成的类路径?