从jar内部加载ResourceBundle

Yan*_*ise 8 java jar resourcebundle

我已经看到了一些关于如何通过getResourceAsStream在jar中加载特定文件的答案,我可以管理它.但是我面对的是一些非常具体的内容,我在论坛上找不到相关的答案.

这是配置:

我有一个jar文件,其conf目录包含2个属性文件messages_en_US.propertiesmessages_fr_FR.properties.加载这些资源的经典方法是使用

ResourceBundle.getBundle("messages", java.util.Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)

如果文件在磁盘上,则在programm类路径引用的目录中,这可以正常工作.但我不知道如何管理ResourceBundle.getBundle的使用和jar中的资源的使用.实际上,因为我看不到通过getResourceAsStream的任何桥接(或者这意味着我自己管理语言环境以指定整个资源文件名,这不是很聪明).

有人可以帮忙吗?

谢谢.

JB *_*zet 10

如果它在jar内的conf目录中,那么你要加载的bundle的包是conf,你应该使用

ResourceBundle.getBundle("conf.messages", java.util.Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)

javadoc说:

baseName - the base name of the resource bundle, a fully qualified class name
Run Code Online (Sandbox Code Playgroud)


ada*_*shr 1

你试过这个吗?

ResourceBundle.getBundle("conf/messages", java.util.Locale.getDefault());
Run Code Online (Sandbox Code Playgroud)