Свойства Конфигурация, как ссылаться на config.properties - PullRequest
1 голос
/ 18 ноября 2011

Я новичок в Java, так что прости меня за недостаток знаний. Я пытаюсь использовать файл свойств в своем веб-приложении. Во время исследования я нашел эту статью http://commons.apache.org/configuration/howto_properties.html, которая казалась довольно простой, поэтому я попытался реализовать ее. Я попытался реализовать следующим образом:

    Configuration config = new PropertiesConfiguration("stream.bundle.config"); 

Я пробовал stream.bundle.config, bundle.config и многие другие комбинации, но каждый раз я получаю исключение, которое говорит, что не удается найти источник конфигурации. Файл находится в папке под src под названием bundle. Мой вопрос а) где файл должен быть? б) как я должен ссылаться на это. Я прошу прощения за отсутствие знаний. Заранее спасибо.

обновление:

Я тоже пытался

        FileInputStream in; 
    Properties p = new Properties();

    try{
        in  = new FileInputStream("config.properties");
        p.load(in);

    }
    catch(Exception e){
        System.out.println("Error: " + e);
    }

и я получаю java.io.FileNotFoundException: config.properties (система не может найти указанный файл) или java.io.FileNotFoundException: config (система не может найти указанный файл)

Ответы [ 2 ]

2 голосов
/ 18 ноября 2011

Относительно а) где должен быть файл:

  • в текущем каталоге
  • в домашнем каталоге пользователя
  • в пути к классам

Если вы планируете использовать свойства Java , вам нужно каким-то образом получить InputStream. Если вы загружаете свойства из класса в пакете, вы должны использовать:

getClass().getResourceAsStream("resource.properties");

и если класс находится в другом пакете:

getClass().getResourceAsStream("some/pkg/resource.properties");

Вы можете попробовать загрузить свойства через ClassLoader:

ClassLoader.getResourceAsStream ("some/pkg/resource.properties");

Если у вас есть ServletContext, вы можете использовать:

ServletContext.getResourceAsStream(..)

РЕДАКТИРОВАТЬ: вы должны ссылаться на ваш файл по полному имени (имя файла + расширение). Итак, ваш первый попытка должна была быть:

Configuration config = new PropertiesConfiguration("config.properties");
1 голос
/ 23 сентября 2013

Попробуйте это:

Properties properties = new Properties();
try 
{
    properties.load(Thread.currentThread().getContextClassLoader().getResourceAsStream("xyz.properties"));
} 
catch (IOException e) 
{
    // TODO Auto-generated catch block
    e.printStackTrace();
}
...