如何获取运行时Web应用程序路径?

时间:2011-03-22 10:32:41

标签: java file netbeans

在我的Web应用程序中,我在web文件夹中使用属性文件,我需要从同一应用程序中的java文件中引用属性文件以获取属性的值。我该如何提供路径?我需要路径名而不是URI。我的代码如下:

    Properties prop = new Properties();
    FileInputStream propertiesStream = null;
    try {
        propertiesStream = new FileInputStream("..\Files\Prop.properties");
        prop = new Properties();
        prop.load(propertiesStream);
        prop.getProperty("id");
        propertiesStream.close();
    } catch (IOException ioException) {
        System.out.println("PropertiesLoader IOException message:" + ioException.getMessage());
    }

2 个答案:

答案 0 :(得分:3)

考虑到它是一个属性文件,我建议您从类路径中将其作为ResourceBundle获取。

E.g。说你把属性文件放在这里:

/WEB-INF/classes/MyProperties.properties

您可以使用以下代码获取它:

ResourceBundle props = ResourceBundle.getBundle("MyProperties");

或作为Properties对象:

Properties props = new Properties();
InputStream is = getClass().getResourceAsStream("MyProperties");
props.load(is);
is.close();

答案 1 :(得分:1)

如果要阅读包中的属性文件,则应使用 -

InputStream is = pageContext.getServletContext().getResourceAsStream("/props/env- props.properties");
BufferedReader reader = new BufferedReader(is);

获得推荐的读者后,您可以根据需要操作它。这样你真的不需要servlet和web应用程序的路径。上面的方法将在类路径中查找资源。