从外部维护Java资源属性文件
早些时候,我将属性文件放在类路径从外部维护Java资源属性文件,java,resourcebundle,Java,Resourcebundle,早些时候,我将属性文件放在类路径src/中。现在我想把它放在一个名为config/的文件夹中。这样,最终用户实际上可以自己修改文件 但是现在我下面的代码不再工作了 ResourceBundle.getBundle("Messages", Locale.getDefault()); 我所说的代码不再工作的意思是,在我部署应用程序并修改Messages\u en\u US.properties之后,不会发生更改 我怎样才能实现我想要的?我应该使用getBundle吗 编辑 我也在类路径中添加了co
src/
中。现在我想把它放在一个名为config/
的文件夹中。这样,最终用户实际上可以自己修改文件
但是现在我下面的代码不再工作了
ResourceBundle.getBundle("Messages", Locale.getDefault());
我所说的代码不再工作的意思是,在我部署应用程序并修改Messages\u en\u US.properties
之后,不会发生更改
我怎样才能实现我想要的?我应该使用getBundle
吗
编辑
我也在类路径中添加了config
文件夹,但我不确定这是否相关。这是一个普通的Java应用程序,我没有使用Maven或任何构建工具
默认情况下,ResourceBundle仅在第一次请求时加载,并在后续请求中重用。您可以使用丢弃缓存的ResourceBundle
此外,ResourceBundle是从类路径加载的。因此,您必须确保所讨论的类加载器也不会缓存资源。或者您可以使用自己的
ResourceBundle.Control
以您喜欢的任何方式加载属性文件。您需要说明如何构建代码以及此config
目录的确切位置。一般来说,您的包将在类路径的根目录中查找,因此您可能需要指定config.Messages
或类似内容。对于Maven这样的构建系统,通常的方法是将诸如属性文件之类的资源放在单独的目录树(如src/main/resources
)中,它们最终位于类路径的根目录下。向我们展示各种文件的位置、执行java命令的位置以及正在执行的命令。我已经更新了一个屏幕截图。OK。所以您有一个Eclipse项目,并将config定义为一个源文件夹,对吗?执行上述代码时,会发生什么情况?默认区域设置是什么?当我在config
中编辑属性文件时,不会发生更改。默认区域设置为en_US