Как получить путь к веб-приложению во время выполнения? - PullRequest
1 голос
/ 22 марта 2011

В моем веб-приложении я использую файл свойств внутри веб-папки, и мне нужно сослаться на файл свойств из файла 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 ]

3 голосов
/ 22 марта 2011

Учитывая, что это файл свойств, я бы посоветовал вам извлечь его как ResourceBundle из вашего пути к классам.

Например, сказать, что вы поместили свой файл свойств здесь:

/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 голос
/ 22 марта 2011

Если вы хотите прочитать файл свойств в вашем пакете, вы должны использовать -

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

После получения буферизованного считывателя вы можете манипулировать им, как хотите.Таким образом, вам не нужен путь сервлета и веб-приложения.Приведенный выше метод будет искать ресурс в classpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...