在eclipse中放置属性文件的位置以及如何在本地和服务器上访问路径

时间:2014-05-13 18:56:56

标签: java eclipse properties

我在这看到了一些类似的问题,但我对它们的了解不够,所以我想问问题并按照自己的方式进行调整。

我有一个属性文件,我存储在src / main / resources中,然后在我的代码中引用它,如下所示:

    Properties prop = new Properties();
    InputStream input = null;

    try { 
        input = new FileInputStream("src/main/resources/app.properties");

        // load a properties file
        prop.load(input);

这在本地工作,但是当我创建.war文件并将其部署到服务器时,它不知道属性文件在哪里。我在哪里放置这个属性文件,如何在代码中引用它,以便我可以在本地运行它,并在服务器上运行没有任何问题?

3 个答案:

答案 0 :(得分:7)

我假设您有maven项目,您可以将该属性文件放在src/main/resources/app.properties并更改代码以将其读取为

getClass().getClassLoader().getResourceAsStream("/app.properties");

答案 1 :(得分:3)

您似乎正在使用maven项目,因此在/ src / main / resources /
中定义了文件 可以在类路径中直接使用。和/src/main/resources/app.properties一样 在classpath上作为classpath:app.properties。

答案 2 :(得分:1)

从我看到的架构中,我猜你正在使用Maven。因此,您的属性文件将位于您{warFile} / WEB-INF / classes中。 要在运行时访问此类文件,请使用以下代码:

input = new FileInputStream(getClass().getClassLoader().getResourceAsStream("/app.properties"));

这是因为WEB-INF / classes中的所有内容都是“在您的类路径中”。要访问类路径,必须获取相关的类加载器。最好的方法是使用同一个WAR中的一个类。