さまざまな言語 (en、de、fr、...) に を使用しResourceBundle
ており、キーは .properties ファイルにリストされています。それはうまく機能しますが、関数でクラスパスを使用するだけgetBundle()
です。
ここで、プロジェクトを実行可能な JAR ファイルとしてビルドすると、それらのプロパティ/ディクショナリ ファイルを維持できなくなります。これらのファイルを JAR ファイルから取得して使用するにはどうすればよいですか (おそらく相対パスを使用)。
さまざまな言語 (en、de、fr、...) に を使用しResourceBundle
ており、キーは .properties ファイルにリストされています。それはうまく機能しますが、関数でクラスパスを使用するだけgetBundle()
です。
ここで、プロジェクトを実行可能な JAR ファイルとしてビルドすると、それらのプロパティ/ディクショナリ ファイルを維持できなくなります。これらのファイルを JAR ファイルから取得して使用するにはどうすればよいですか (おそらく相対パスを使用)。
これが役に立ったらチェックしてください。スレッドには、絶対パス (相対パスではありません) を使用してこれを実現する方法がリストされています。
リンクからのコードのインライン化:
File file = new File("/languages");
URL[] urls = {file.toURI().toURL()};
ClassLoader loader = new URLClassLoader(urls);
ResourceBundle bundle = ResourceBundle.getBundle("english", Locale.getDefault(), loader);
また、URL から:
URL[] urls = new URL[1];
// - startfolder on the server, where he can find the package-structure like this.BUNDLE_NAME (http://somedomain.com/jws-stuff/com/myexample/test/)
urls[0] = new URL("http://somedomain.com/jws-stuff/");
ClassLoader loader = new URLClassLoader(urls);
RESOURCE_BUNDLE = ResourceBundle.getBundle(BUNDLE_NAME, Locale.GERMAN, loader);