Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从外部维护Java资源属性文件_Java_Resourcebundle - Fatal编程技术网

从外部维护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