Config.properties не показывает обновление в текущем запуске, почему? - PullRequest
0 голосов
/ 29 сентября 2018

У меня есть класс CrunchifyGetPropertyValue для получения параметров из образца config.properties, как показано ниже:

...
public int getParamAnswersValue() throws IOException{

        try{
            Properties prop = new Properties();
            String propFileName = "config.properties";

            inputStream = this.getClass().getResourceAsStream("/res/config.properties");

            if(inputStream != null){
                prop.load(inputStream);
            } else {
                throw new FileNotFoundException("property file '" + propFileName + "' not found in the classpath");               
            }
            value = Integer.parseInt(prop.getProperty("paramAnswers"));

            System.out.println(value);
        } catch (Exception e){
            System.out.println("Exception: " + e);
        } finally {
            inputStream.close();
        }
        return value;
    }
...

И есть файл OptionsController.java с задачей для чтения / обновления образца config.properties, как показано ниже:

...
CrunchifyGetPropertyValue properties = new CrunchifyGetPropertyValue();

@Override
    public void initialize(URL location, ResourceBundle resources) { 
try{
    slider.setValue(properties.getParamAnswersValue());
    field.setText(Integer.toString(properties.getParamAnswersValue()));
    field.textProperty().bind(slider.valueProperty().asString("%.0f"));
    ...
} catch (IOException ex) {
    Logger.getLogger(OptionsController.class.getName()).log(Level.SEVERE, null, ex);}

И проблема в том, что этот класс параметров может успешно сохранить обновление в config.file, но после этого сохранения, когда я снова открываю этот класс в том же запуске, слайд.value и field.text действительно показывают первую инициализациюЗначения на экране, когда config.properties меняются в файле, который мы можем наблюдать.Пример:

>Run App
>>Open optionPanel //run OptionsController.java
>>>//OptionsController loaded our config.properties data (2:3:4)
>>>We change values from 2:3:4 to 3:3:3
>>>click saveButton
//now we can see by openning config.properties that actually there are 3:3:3 values
>>>optionPanel window is closing
>>Open optionPanel //we open window again in same run
>>>//OptionsController loaded values 2:3:4 instead of 3:3:3
>Close app
>Run app
>>Open optionPanel //run OptionsController.java
>>>//OptionsController loaded our config.properties data (3:3:3)
....

Почему не меняется при одном запуске?Немного пробовал, но ничего не помогло, есть идеи, почему он не читает данные из .properties в движении при запуске одного и того же приложения?

...