【问题标题】:PropertiesConfiguration doesn't reload with Symbolic linkPropertiesConfiguration 不使用符号链接重新加载
【发布时间】:2020-10-01 08:58:48
【问题描述】:

考虑到“文件”是指向真实文件的符号链接的情况

file -> real_file

如果我配置 PropertiesConfiguration(来自 Apache Commons Config)打开符号链接,如果我更新真实文件,它不会重新加载它

String filePath = new File(path).getCanonicalPath();
PropertiesConfiguration configuration = new PropertiesConfiguration(new File(filePath));
configuration.setReloadingStrategy(new FileChangedReloadingStrategy());

当然,在这种情况下,符号链接的更新日期是不变的,与真实的不同。

有没有办法强制PropertiesConfiguration 跟随符号链接并识别真实文件的更改?

【问题讨论】:

  • .getCanonicalPath() 将为您提供文件的真实路径。因此,在您的代码示例中,您正在查看实际文件,而不是符号链接。所以它不需要遵循这个例子中的符号链接。这段代码不会在真实文件的更改上重新加载吗?
  • 是的,我刚刚发现问题是指向的文件已被另一个文件替换,因此 PropertiecConfiguration 指向一个不存在的文件。这就是重新加载不起作用的原因
  • 知道了。我建议您随后为您自己的问题写一个答案,以便对社区有所帮助。

标签: java symlink apache-commons-config


【解决方案1】:

问题是.getCanonicalPath() 打开了指向的文件而不是符号链接。 如果有人用另一个替换真实文件PropertiecConfiguration 仍然指向一个不存在的文件,那么重新加载不起作用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-02
    • 1970-01-01
    • 2015-05-05
    • 2016-10-20
    • 1970-01-01
    • 2012-07-17
    • 2016-01-11
    • 1970-01-01
    相关资源
    最近更新 更多