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

时间:2014-04-04 21:41:59

标签: java spring tomcat

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

class MyClass { 

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

}

它没有用。

我如何获得classpath?

我需要得到这样的东西:" C:/ Tomcat / webapp / WEB-INF / classes"。

1 个答案:

答案 0 :(得分:0)

您可以使用系统属性

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

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


Tomcat不需要解压缩您的war,因此您的网络应用可能会从其存档内部运行。因此,像

这样的路径
C:/Tomcat/webapp/your-app/WEB-INF/classes

可能不存在。

对于您的应用程序生成的文件,请自行决定一个专用目录并将其放在那里。