GetProperty возвращает ноль даже после загрузки файла свойств в Java - PullRequest
0 голосов
/ 06 июня 2018

Что не так в приведенном ниже коде.Все кажется правильным и никаких исключений при выполнении.Я дважды проверил, что значение свойства test находится в файле config.properties.

@BeforeClass
public void propertyLoading() {
    System.out.println("in beforeclass");

    prop = new Properties();
    ClassLoader classLoader = ClassLoader.getSystemClassLoader();
    try {
        System.out.println("path : "+classLoader.getResource("config.properties").getFile().toString());
        input = new FileInputStream(new File(classLoader.getResource("config.properties").getFile()));
        prop.load(input);
    } 
    catch (Exception e) {
        e.printStackTrace();
    }

    try {
        if (input != null)
            input.close();
    }
    catch (IOException e) {
        e.printStackTrace();
    }

    System.out.println("test       : "+System.getProperty("test"));
}

Содержимое файла config.properties ниже;

test=aaaa

Ответы [ 2 ]

0 голосов
/ 06 июня 2018

Если вы хотите прочитать ваши свойства из System.getProperty (), вызовите

System.setProperties(prop);

после чтения ваших свойств из файла

(В боковой линии используйте try с ресурсами, когда это возможно https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html)

0 голосов
/ 06 июня 2018

Поскольку вы используете системные свойства, это не то же самое, что свойства среды выполнения, которые вы пытаетесь использовать

System.getProperty

, в то время как вам следует вызывать объект Properties, который вы создали несколькими строками выше

prop.getProperty("test")
...