java - 在 Spring 中使用@Value 检索应用程序类路径

标签 java spring tomcat

我正在尝试获取部署在 tomcat 上的 Web 应用程序的类路径,以便我知道在哪里存储我的 xml 文件。

class MyClass { 

    @Value("${classpath:}")
    private String classpath;

}

它不起作用。

如何获取类路径?

我需要这样的东西:“C:/Tomcat/webapp/WEB-INF/classes”。

最佳答案

您可以使用系统属性

@Value("#{systemProperties['java.class.path']}")
private String classPath;

请注意,这将为您提供一个以逗号分隔的列表,其中包含类路径中使用的所有目录和 jar URI。


Tomcat 不需要解压缩您的 war,因此您的 Web 应用程序可能从其存档中运行。因此,像这样的路径

C:/Tomcat/webapp/your-app/WEB-INF/classes

可能不存在。

对于您的应用程序正在生成的文件,为您自己决定一个专用目录并将它们放在那里。

关于java - 在 Spring 中使用@Value 检索应用程序类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22873533/

相关文章:

spring - Mapstruct 1.2.0 未在 springboot 2.0.0.M3 + lombok 中生成映射器类

java - SSL 身份验证/授权是否是握手的一部分?

java - 如何定义整个spring项目的连接范围——web服务连接范围

java - 如何编写代码添加储蓄帐户程序中所有月份余额的总计

java - jetty + SpringMVC : Error when set configureDefaultServletHandling because cannot find the default servlet name

java - 如何处理1 :N Foreign Key for CRUD in Spring MVC/Hibernate?

java - 如何禁用 Quartz JDBCJobStore 中的作业?

java - 从另一个类文件访问另一个类文件

java - Tomcat 返回 404 状态

java - Tomcat 无法使用 cargo maven 启动组件