9

getResourceAsStreamを介して jar 内の特定のファイルをロードする方法に関するいくつかの回答を見てきましたが、これを管理できます。しかし、私は本当に具体的なことに直面しており、フォーラムでこれに関する答えを見つけることができませんでした.

構成は次のとおりです。

2 つのプロパティ ファイルmessages_en_US.propertiesmessages_fr_FR.propertiesを含むconfディレクトリを持つ jar ファイルがあります。そのようなリソースをロードする古典的な方法は、

ResourceBundle.getBundle("messages", java.util.Locale.getDefault());

ファイルがディスク上にあり、プログラムのクラスパスによって参照されるディレクトリにある場合、これは正常に機能します。しかし、 ResourceBundle.getBundleの使用と jar 内からのリソースの使用を組み合わせて管理する方法がわかりません。確かに、 getResourceAsStreamを介してブリッジが表示されないため(または、リソース ファイル名全体を指定するためにロケールを自分で管理する必要があり、あまりスマートではありません)。

4

4 に答える 4

10

jar 内の conf ディレクトリにある場合、ロードしようとしているバンドルのパッケージは であり、conf使用する必要があります

ResourceBundle.getBundle("conf.messages", java.util.Locale.getDefault());

javadocは次のように述べています。

baseName - the base name of the resource bundle, a fully qualified class name
于 2012-06-06T09:44:17.087 に答える
1

これを試しましたか?

ResourceBundle.getBundle("conf/messages", java.util.Locale.getDefault());
于 2012-06-06T09:43:25.937 に答える